STM32F0多路ADC采样中的BUG和解决方案.doc
-
资源ID:3273495
资源大小:14.50KB
全文页数:2页
- 资源格式: DOC
下载积分:2元
快捷下载
会员登录下载
微信登录下载
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
STM32F0多路ADC采样中的BUG和解决方案.doc
STM32F0多路ADC采样中的BUG和解决方案uint32_t ADC_Detect(uint32_t AD_Channel) hadc.Instance-CHSELR = 0; ADC_ChannelConfTypeDef sConfig; sConfig.Channel = AD_Channel; sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; sConfig.SamplingTIme = ADC_SAMPLETIME_1CYCLE_5; HAL_ADC_ConfigChannel(hadc, sConfig); uint32_t ADC_result; /*ADC START*/ if(HAL_ADC_Start(hadc)!=HAL_OK) while(1) /*Wait for ADC completed*/ if (HAL_ADC_PollForConversion(hadc, 10) != HAL_OK) while(1) else /*Get the converted value of regular channel*/ ADC_result = HAL_ADC_GetValue(hadc); HAL_ADC_Stop(hadc); /ADC_result =(ADC_result*3300)8); return ADC_result; 使用CUBE生产的ADC无法配置多路采样,多路采样采集值不对,研究后发现是底层函数没有将CHANNEL清零导致的只需要在函数中增加 hadc.Instance-CHSELR = 0; 手动清0 寄存器即可。