STM32L053如何获得多通道AD
1 目前采用CUBEMX生成了多通道的初始化,只有配置sConfig.Channel = ADC_CHANNEL_0;
sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
{
Error_Handler();
}
/**Configure for the selected ADC regular channel to be converted.
*/
sConfig.Channel = ADC_CHANNEL_1;
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
{
Error_Handler();
}
/**Configure for the selected ADC regular channel to be converted.
*/
sConfig.Channel = ADC_CHANNEL_2;
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
{
Error_Handler();
}
/**Configure for the selected ADC regular channel to be converted.
*/
sConfig.Channel = ADC_CHANNEL_3;
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
{
Error_Handler();
}
/**Configure for the selected ADC regular channel to be converted.
*/
sConfig.Channel = ADC_CHANNEL_4;
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
{
Error_Handler();
}
/**Configure for the selected ADC regular channel to be converted.
*/
sConfig.Channel = ADC_CHANNEL_5;
if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)
{
Error_Handler();
}
但是没有启动
2另外,我读取这个AD,采用查询方式的时候,如何获得4个通道的数据呢?
没有理解想要表达什么,是代码有问题,还是想请教怎么写代码? 每次只能读取单通道,你只能读完一个,然后切换,再读 重要的事情是看官方的CUBE的例程。 本帖最后由 wenyangzeng 于 2017-6-29 13:11 编辑
楼主万事具备,只欠东风。
使能扫描模式
hadc1.Init.ScanConvMode = ENABLE;
启动ADC
HAL_ADC_Start(&hadc1);
读取ADC
HAL_ADC_PollForConversion(&hadc1, 4);Value = HAL_ADC_GetValue(&hadc1);
DMA方式:
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)& ADC_Result,4);
ST官方代码很多可以参考呀。
需要设置采样序列,可以找个例程看看:) 可以采用DMA去读 楼主应该是未使能ADC。 多通道建议使用DMA模式,直接读取缓存区数据即可 学习楼上的大神们
页:
[1]