关于DMA+ADC的问题

2019-10-15 04:03发布

用DMA+ADC模式采样时,DMA缓存区数据存满之后,取出去进行滤波存储处理,在操作缓存区数组时ADC还是在工作吗?如果还是在工作那么采样数据放到哪里了呢,会在操作数组过程中覆盖原来的值吗,最近才接触到DMA,请多指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
augustedward
1楼-- · 2019-10-15 08:14
是可以设置的,一般DMA采完后,都会停止,需要重新开启,
hande
2楼-- · 2019-10-15 11:36
 精彩回答 2  元偷偷看……
xueshawu
3楼-- · 2019-10-15 12:11
DMA只是把ADC转换的结果搬运出去,如果没有及时读取的话,会覆盖掉吧;---这貌似是循环模式下的情况;
hande
4楼-- · 2019-10-15 17:23
xueshawu 发表于 2017-2-9 10:08
DMA只是把ADC转换的结果搬运出去,如果没有及时读取的话,会覆盖掉吧;---这貌似是循环模式下的情况;

那怎么解决呢,设置两个缓存区,DMA向其中一个搬运数据,存满之后到主程序里进行处理,这个过程中,DMA向另一个搬运,依次交替进行,这个方案可行吗
xueshawu
5楼-- · 2019-10-15 22:00
你的问题是不是,你ADC转换的数据可能来不及处理;会导致有些数据会被覆盖掉? 间断模式是不是可以试一下
xueshawu
6楼-- · 2019-10-15 23:43
我先理一下,你的需求
1、ADC要工作在连续采样模式,
2、DMA也在循环模式
3、ADC的数据需要滤波处理(需要一定的时间,可能会导致缓存数组的数据被覆盖)

一周热门 更多>