打印

dma+uart接收

[复制链接]
2065|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝