TI论坛
直播中

陈杰

7年用户 1408经验值
私信 关注
[问答]

请问如何用uart使用udma接收不定长数据的方法?

目前在做的一个项目会用uart接收移动模块的数据,为了提高效率想使用uart配合udma收发数据,但是接收数据格式是多种多样和不定长的,因此我没有办法用设置
udma 接收数目的设置来触发udma中断,从而知道数据已经接收完毕,tm4c123 开发板的udma例程 是用设定好udma的转存数据的数目来做的,这样只适合定长的
数据接收转存。 我有考虑过使用uart 超时中断来做,思路是uart收到数据后 由udma转存到数据区,当uart fifo没有接收到数据后 会触发接收超时中断,此时可以判定
一帧数据收完。 但是实际运行下来发现 当uart udma启用后 uart的接收超时告警是不会触发的,一定是要到达了udma转存了预设的转存数目的条件后才会触发uart
中断,所以这个办法也行不通。
所以想问一下大家 有没有什么好的办法解决用uart udma 接收不定长数据帧的方法

回帖(2)

韦明

2018-8-17 07:58:07
可以参考下STM32的方案,有类似的实现办法。
举报

陈杰

2018-8-17 08:05:55
引用: ljmlvmd 发表于 2018-8-17 07:58
可以参考下STM32的方案,有类似的实现办法。

谢谢 你的答复 我找到了相关stm的文章 http://no001.blog.51cto.com/1142339/902155 对我很有帮助多谢!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分