STM32 ADC 采样值不准确或偏小 分析和解决方法

问题1(HAL库stm32cubemx):

使用ADC / DMA 循环自动采样的方式,但是采样数据与实际数据相差比较大,小了很多。

解决办法

配置adc的时候,采样周期需要设置大一些。
sConfig.SamplingTime = ADC_SAMPLETIME_71CYCLES_5 ;

原因分析

采样周期太小,会导致采样不准确,采样周期越大越准确。
采样周期太大会影响采样时间,计算公式:
采样时间(us) = (12.5+SamplingTime ) / ADC时钟(MHZ)

问题2:

仿真调试时,采样准确,但是设备重新上电后,采样不准确,偏小。

解决办法

上电后延时一会,再运行校准ADC的操作 :

HAL_Delay();
HAL_ADCEx_Calibration_Start(&hadc1);

原因分析

电路板刚上电时,电容太大的原因,电压还没上升到3.3V,但是程序已经在运行了,这时执行校准会导致ADC不准确。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月16日
下一篇 2020年8月16日

相关推荐