RTT 使用 DMA+空闲中断,能否实现不定长接收数据?

发布于 2021-02-26 16:45:21
关注者
0
被浏览
264
6 个回答
uPy
uPy 2021-02-26

可以实现,要稍微修改rt_device_read的执行逻辑。
DMA收到一包数据后,要通过消息把长度转给线程,再调用rt_device_read取出缓冲区数据。

Jone
Jone 2021-02-27

没问题的。
rtt开启了空闲、接收半满、完成中断且DMA为循环模式因此需要在应用层实现打包的逻辑,否则数据会被分包。
分包问题
分包可以采用定时器或者特定字符作为数据结尾

zhanxiaozhang
zhanxiaozhang 2021-03-09

只能说可以实现,但是兼容性不会太好,要想很好的兼容的可能出现的帧内字节间的超时,只能来一个字节处理一下,idle中断对字节间隔要求高。

ZBXY_7941
ZBXY_7941 2021-03-25

可以的,就是设置一个状态机,一个字节一个字节的处理

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览