dma+uart接收

[复制链接]
 楼主| robin0557 发表于 2012-1-23 09:35 | 显示全部楼层 |阅读模式
DMA在关闭期间,如果串口收到数据的话,再次开启DMA就会收到数据。在开启之前读取DR寄存器也没效果。因为对方设备有时候会多发数据,所以很麻烦,不知道第一个字节是不是对方多发的。现在我是收完后关闭串口,开DMA之前再开串口。这算不算问题呢?
香水城 发表于 2012-1-30 10:01 | 显示全部楼层
这是软件的问题;关闭DMA时,也要关闭UART,这样才能保证同步。
airwill 发表于 2012-1-30 11:26 | 显示全部楼层
一个字, 乱!
我感觉这样处理好乱!
为什么要关闭 DMA 和 UART?
在数据通信的处理中, 通常我们不建议设定好外设后再关闭或重新初始化的动作.
硬件和 DMA 只是简单地完成数据收发和错误状态保存.
余下的事情应该交给协议层的软件去处理.
也就是说, 楼主所说的 "多发" 应该由协议层软件去处理和剔除
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

68

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部