STM32L073 使用cube生成ADC多路采样错误解决


错误说明:

使用cube生成多路AD采集,非中断,非DMA模式下,软件切换通道,发现会出现只有第一路的值是正确的,后面的几路值都不对,切换通道部分代码如下:

  ADC_ChannelConfTypeDef sConfig;sConfig.Channel=ch;                                   sConfig.Rank=ADC_RANK_CHANNEL_NUMBER;   	HAL_ADC_ConfigChannel(&hadc,&sConfig);        HAL_ADC_Start(&hadc);                               

原因是这样切换并没有将CHSELR寄存器清掉,需改成:

  ADC_ChannelConfTypeDef sConfig;hadc.Instance->CHSELR = 0;sConfig.Channel=ch;                                   sConfig.Rank=ADC_RANK_CHANNEL_NUMBER;   	HAL_ADC_ConfigChannel(&hadc,&sConfig);        HAL_ADC_Start(&hadc); 

若有理解不对的地方,还请提出来,大家交流学习。


 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部