打印

关于AD转换中的数据问题

[复制链接]
1145|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liutongda|  楼主 | 2015-12-19 11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32 ADC中连续转换执行,想问一下,当第1次转换结束的时候,数据是存放到ADC_DR寄存器中,那么此时,如果没有及时把数据读走的话,那么第2次转换结束后,此时,转换得到的AD数据将会放到什么地方?

相关帖子

沙发
l科科1987| | 2015-12-19 14:39 | 只看该作者
不取走就会被覆盖

使用特权

评论回复
板凳
sepmoon| | 2015-12-19 14:45 | 只看该作者
寄存器中存放的是转换后的最新数据,也就是说最新的数据会覆盖之前的数据。
为了避免数据被覆盖,一种做法是在转换完成后产生一个中断,在中断函数里将数据存放到自定义的堆栈中,等待其他函数的读取。

使用特权

评论回复
地板
jouney316| | 2015-12-19 22:18 | 只看该作者
标准的操作流程是,只有取走AD值后,才会进行下一次转换

使用特权

评论回复
5
rmbass| | 2015-12-20 10:46 | 只看该作者
你可以把一定时间内采集到的数据放到数组中,然后进行处理,这样就好多了

使用特权

评论回复
6
haokeer| | 2015-12-20 15:31 | 只看该作者
多通道多次采集的话,建议用DMA通道,这样就可以避免这个问题了。不过读到的值,还是需要及时处理的。

使用特权

评论回复
7
Classover| | 2015-12-20 22:54 | 只看该作者
多通道多次采集的话,建议用DMA通道,这样就可以避免这个问题了。不过读到的值,还是需要及时处理的。

使用特权

评论回复
8
manaok12345| | 2015-12-21 19:12 | 只看该作者
你可以把这些数据存到其他地方,比如SD卡之类的存储器件

使用特权

评论回复
9
tomyoct| | 2015-12-23 08:47 | 只看该作者
反正是实时的,你可以每次累加,然后取个平均值,这样又好看,又稳定

使用特权

评论回复
10
maninman1981| | 2015-12-23 23:00 | 只看该作者
建议数据的读取完毕后放到数组中,这样就可以简单的实时保存了。

使用特权

评论回复
11
jouney316| | 2015-12-27 11:45 | 只看该作者
tomyoct 发表于 2015-12-23 08:47
反正是实时的,你可以每次累加,然后取个平均值,这样又好看,又稳定

实时的滤波是必须的,其实这样速度很快,根本不影响的。

使用特权

评论回复
12
liutongda|  楼主 | 2016-1-23 22:15 | 只看该作者
jouney316 发表于 2015-12-27 11:45
实时的滤波是必须的,其实这样速度很快,根本不影响的。

用什么滤波方法好点呢?

使用特权

评论回复
13
liutongda|  楼主 | 2016-1-23 22:16 | 只看该作者
maninman1981 发表于 2015-12-23 23:00
建议数据的读取完毕后放到数组中,这样就可以简单的实时保存了。

我就是准备保存到数组中的,可是内存不够了,保存一个就占4个字节了,好浪费

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

213

帖子

0

粉丝