dma接收模式,是否每次中断都要重新设置的目标地址?

2019-07-20 19:06发布

我是在做usart的DMA,空闲中断+DMA接收,目的地址只在初始化中设置了一次,其他地方没有设置,结果第二次收到的数就在存储器中接着存储了。
比如我自己定义r_buff[200],第一次收到“123456”,清空的情况下,第二次收到的是"000000123456"


问题:在dma接收模式下,是不是在中断里需要重新设置目的地址?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
civic7366
1楼-- · 2019-07-20 20:25
 精彩回答 2  元偷偷看……
godlovejie
2楼-- · 2019-07-20 23:16
我的程序在中断程序中,必须重新初始化DMA,才能正确接收,否则就有下面两种情况:

1.能接收到数,但是数据储存的位置不太对,比如我自己定义r_buff[200],第一次收到“123456”,清空的情况下,第二次收到的是"000000123456"

2.DMA第二次没有把数据从外设(就是串口DR寄存器)搬移到存储器(就是自己定义的r_buff数组)。

有谁遇到这样的情况,帮忙解释下原因

一周热门 更多>