关于DMA串口实验的疑问

2019-07-21 04:52发布

最近学习了串口和DMA实验,这里有个疑问:

假设要用串口发送数据出去,就是往发送寄存器里面写数据。当我用DMA将多个字节连续搬运至串口发送寄存器的时候,会不会出现前面一个字节还没被串口发送完,后面一个字节的数据已经来了的情况。这样岂不是覆盖了尚未发送完成的那个数据?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-21 07:09
不会,DMA的运行机制,必须是串口上一个数据发送完了,给一个触发信号给DMA,才会传输下一个数据过来的。
K23428
2楼-- · 2019-07-21 11:01
如果我用CPU来控制,自然不会有这种担心。因为我可以在每次往发送寄存器里填数据之前,检查下USART_FLAG_TXE。可是DMA有这么智能吗?
二九结狐六体
3楼-- · 2019-07-21 13:45
可是DMA有这么智能吗?
brucewoo
4楼-- · 2019-07-21 17:52
 精彩回答 2  元偷偷看……
K23428
5楼-- · 2019-07-21 19:26
谢谢原子哥和各位大佬的解答

一周热门 更多>