OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9637|回复: 11

消除STM32内置ADC采集数据的波动

[复制链接]

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2014-11-12
在线时间
8 小时
发表于 2015-10-14 13:00:21 | 显示全部楼层 |阅读模式
今天在用ucosiii做ADC采集实验时,偶然发现同样的采集程序,在ucosiii上得到的数据很稳定,在接3.3v时,得到的稳定数据为3.299;并且得到的值完全没有跳动。于是猜想是不是在每一次读取数据的时候,加一个小延迟就会消除数据波动?然后进行ADC在STM32上进行裸跑,经过反复测试,发现确实是这样。我测的的最小延迟是5ms,可以得到0.9mv无任何波动的偏差。因为条件问题,我只是转换了地和3.3V,经过stm32内置AD转换,得到的结果分别是:0.0000和3.2991V,当然我这只是保留了小数点4位,如果5位,6位的话,会更低吧,我测了小数点5位的值是3.29919V。当然如果延迟低于5ms,延迟越低,跳动越大。希望这个偶然的发现可以帮到大家。
最后再说一下方法,
一定要在读取数据前延迟5ms,并且两者要紧挨,如下:

delay_ms(5);//这是延迟
  adcx=ReadADCAverageValue(0x00); //这是采样的数据。
两者必须连续执行。不可以分开。否则也会发生跳动。
不知道和采样频率有没有关系,我实验的采样频率是12M的,如果有时间,大家可以去实验一下采样频率的关系。
还有延迟时间或许会跟型号不同而不同,我用的STM32F103的芯片。大家可以根据实际情况来延迟。
因为语言能力有限,还请谅解,如果还有什么不懂的,可以留言。我会尽可能的去帮助大家。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-10-14 14:11:01 | 显示全部楼层
谢谢分享,抽时间测试一下

楼主很细心,也很善于推理验证
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

15

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
180
金钱
180
注册时间
2012-11-21
在线时间
9 小时
发表于 2015-10-14 22:40:35 | 显示全部楼层
留记号,谢谢分享
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2014-11-12
在线时间
8 小时
 楼主| 发表于 2015-10-14 23:20:40 | 显示全部楼层
回复【2楼】龙之谷:
---------------------------------
也是偶然发现的,分享一下,让别人以后也少走弯路。虽然不是什么很惊艳的发现。
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2014-11-12
在线时间
8 小时
 楼主| 发表于 2015-10-14 23:25:00 | 显示全部楼层
回复【2楼】龙之谷:
---------------------------------
同时也很期待你的验证和补充,防止出现片面性,误导了大家。
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2014-11-12
在线时间
8 小时
 楼主| 发表于 2015-10-14 23:25:30 | 显示全部楼层
回复【3楼】daska110:
---------------------------------
一起分享学习
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2015-4-12
在线时间
6 小时
发表于 2015-11-5 11:58:25 | 显示全部楼层
谢谢楼主分享心得,LZ善于推理善于发现的精神值得学习!!!!!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2015-11-19
在线时间
0 小时
发表于 2016-7-6 16:08:36 | 显示全部楼层
谢谢楼主
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2016-3-5
在线时间
26 小时
发表于 2016-7-19 20:01:07 | 显示全部楼层
感谢分享~
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2012-7-11
在线时间
19 小时
发表于 2017-3-7 16:47:18 | 显示全部楼层
有帮助,感谢分享
回复 支持 反对

使用道具 举报

10

主题

161

帖子

0

精华

高级会员

Rank: 4

积分
750
金钱
750
注册时间
2019-9-5
在线时间
134 小时
发表于 2019-11-26 09:25:36 | 显示全部楼层
连续转换呢?也延时5ms吗
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2020-2-24 15:09:49 | 显示全部楼层
先延迟5ms,然后读ADC值,开启转换在哪呢?
合肥-文盲
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 20:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表