起因
我用STM32采集一个电压数据,感觉波动比较大,
修改了ADC采集为定时采集或连续采集,ADC结果的数据为DMA自动传送或程序读取到后程序自己传送,感觉效果差不多;
加了各种硬件滤波,感觉效果不是很明显。
也请教了网络上的各位朋友,有人说STM32的ADC效果不好,跳变很大;有人说STM32的ADC效果很好,波动可以做到2-3个跳变。
做了一些试验,主要是为了请教各位,看是不是我有什么地方出问题了,还是STM32的ADC就是稳定性不好。
附件中有测试数据和程序,程序是用 MDK 3.80 编译的,如果要用 MDK 4.x 编译,请复制 MDK4版本USER 目录下的文件,覆盖到 USER 目录下
程序是网络上下载下来的,我自己写的程序结果也差不多。
本次试验的说明
1 板子用的是原子的 ALIENTEK MiniSTM32,我买了6、7块板子,都换过了,结果差不多
2 接线都是负端接 ALIENTEK MiniSTM32 的 GND,电阻分压的正端直接取 MiniSTM32 的 3.3V
3 本次试验是为了看STM32的ADC的稳定性,所以数据没有用软件滤波,
我用了软件滤波,波动(最大值-最小值)大概可以降到未滤波前的 10%,基本可以接受。
4 程序我自己写了一些,也换了网络上各位朋友共享的程序,感觉差不多,现在这个是
的 3个通道ADC+DMA+串口
5 ADC数据结果
-----------------------------------------------------------------------
(1) 第1次试验的电压是用电阻分压
通道 电压(V) 理论值 最小 最大 平均 波动
PC0 CH10 2.0358 2527 2519 2572 2557.438849 53
PB0 CH8 2.8600 3550 3548 3614 3582.064748 66
PB1 CH9 2.4440 3034 3043 3120 3070.784173 77
-----------------------------------------------------------------------
(2) 第2次试验的电压
CH8 CH9 电压是用电阻分压
CH10 电压是用2节新的干电池连接的
通道 电压(V) 理论值 最小 最大 平均 波动
PC0 CH10 3.188 3957 3917 3988 3962.340909 71
PB0 CH8 2.8600 3550 3558 3599 3580.409091 41
PB1 CH9 2.4440 3034 3034 3092 3068.25 58
-----------------------------------------------------------------------
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
可能是其他操作干扰了ADC输入引脚的电压吧。
一周热门 更多>