发一个讨论贴

2019-07-21 00:17发布

小弟在用SMT32F4的DMA双缓存搬运数据的时候,要求必须设置一个传输完成中断。我在调试的时候,发现进入中断的时候两个缓存数组都装满了数。那么疑惑来了
第一,MCU进中断后,DMA是否还在搬运数据?
第二,我认为最理想的中断信号,应该是在其中一个缓存数组装满就发出,这样我们是不是可以在中断里设一个flag置位,然后退出中断,当flag置位,就在主函数的死循环里读装满的数组,这样不影响DMA往另外一个缓存数组里搬运数据。通过这个方式,才真正实现,在读取第一个缓存的时候,DMA在搬第二缓存,在读第二个缓存时,DMA在搬第一个缓存,使DMA不间断更新数据。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
布沙尼神甫
1楼-- · 2019-07-21 05:55
正点原子 发表于 2016-1-14 16:40
2,你好好理解下我们的F407开发板音乐播放器例程,乒乓操作.和DMA的中断处理函数

好的,谢谢,我再研究下音乐播放器的例子
正点原子
2楼-- · 2019-07-21 11:13
1,看你设置.我们的例程是还在搬运的.
正点原子
3楼-- · 2019-07-21 11:41
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-21 16:07
 精彩回答 2  元偷偷看……
正点原子
5楼-- · 2019-07-21 18:07
2,你好好理解下我们的F407开发板音乐播放器例程,乒乓操作.和DMA的中断处理函数
布沙尼神甫
6楼-- · 2019-07-21 18:27
正点原子 发表于 2016-1-14 16:40
2,你好好理解下我们的F407开发板音乐播放器例程,乒乓操作.和DMA的中断处理函数

原子哥,再问一个问题,双缓存模式下,进DMA2_Stream1_IRQHandler中断的条件是两个缓存数组都装满进入,还是只有一个缓存数组装满准备切换指针,然后就产生一次中断?

一周热门 更多>