DMA问题的迷惑

2019-03-23 20:31发布

个位达人,我使用USART2的TX做DMA进行数据的输出,波特率为115200,直接发送给PC机,每次发送结束后,进入DMA7的中断,关闭DMA通道。 在PC机发来数据后,又进入USART2的RX中断,在中断里重新再设置DMA的收发地址和字节数,再次发送。
通讯上了,可奇怪的是每次都还没有把设定的字节数读完,就进入了DMA7的中断(我设置的是发完再中断),总会少两个字节。
在DMA7的中断里加上while(!USART2.SR.B.TC);后就OK了,这是否可以说明,在尚未全部发完的情况下,就已经进入了DMA7的中断?
有遇见过相同的问题吗? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
astwyg
1楼-- · 2019-03-24 23:24
 精彩回答 2  元偷偷看……
terrywang135
2楼-- · 2019-03-25 04:09

原帖由 leang521 于 2011-4-14 21:19 发表 你应该注意下缓冲区

 

怎么注意?  哪个缓冲区? 请给予提示。

terrywang135
3楼-- · 2019-03-25 07:58

原帖由 astwyg 于 2011-4-14 21:47 发表 寄存器操作看的晕晕乎乎的,也不大会寄存器..要不.你把设置接受的字符量+2...那不就正好了?

 

 

嘻嘻嘻,我的确也是这么干的,只是从第二帧数据开始,开头会多一个字节0x00,不过我靠和上位机的通讯协议忽略了它

一周热门 更多>