使用的芯片STM32L031 AD采集是12位,使用3.3V供电,采集电压由0.3V(0.3/3.3*4096=372=0x0174)到2.3V(2.3/3.3*4096=2854=0x0b26)线性递增,理论上AD值也会线性递增.
实测数据总体上也是线性递增的,但是通过仿真发现在
0x01FF~0x0230这些点读到的值都是0x01FF
0x02FF~0x0330这些点读到的值都是0x02FF
0x03FF~0x0430这些点读到的值都是0x03FF
也就是只要低8位都是高电平后面就有一串点读出来的值不对,做了个数组连续读100个值,发现100个里面有8个左右的正确值,其他92个都是0x0*FF.
接着把ADC过采样使能,没出现该问题。
现在就搞不清楚为什么会出现这个现象。数据我都是直接仿真看DR寄存器的数据,用的是st官方的HAL库。
请各位大神分析下,不胜感激。
|