关于STM32的ADC稳定性的问题,请原子兄和各位朋友指导

2019-10-15 21:13发布

起因 我用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 -----------------------------------------------------------------------
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
Mars_man
1楼-- · 2019-10-17 14:13
回复【8楼】正点原子:
---------------------------------
原子哥,为什么我单独用ADC采集数据然后通过串口显示在电脑上时,ADC采集的数据波动在15以内,但是当我把FATFS文件系统添加到ADC程序中后(把数据存入SD卡),采集到的数据却有120几的波动呢?
正点原子
2楼-- · 2019-10-17 17:45
回复【14楼】Mars_man:
---------------------------------
可能是其他操作干扰了ADC输入引脚的电压吧。
Mars_man
3楼-- · 2019-10-17 18:13
 精彩回答 2  元偷偷看……
mack13013
4楼-- · 2019-10-17 19:24

解决方案在这里:分享:STM32F407的ADC真的不够精准吗?教你设置STM32F407的ADC参数使其精度高于千分之一

http://www.openedv.com/posts/list/51312.htm

j2030982
5楼-- · 2019-10-17 19:29
你用了滤波电路了吗?用了基本跳动一个字
n85gzj
6楼-- · 2019-10-17 20:48
回复【15楼】正点原子:
---------------------------------
原子哥,AD的稳定性测了吗?
我用它来做示波器的采样,极不稳定啊。

一周热门 更多>