在使用v5.0.2的版本的serila_v2串口驱动时发现,当串口配置成dma接收时,假设我接收缓冲区512字节,每帧数据20字节,rt_device_set_rx_indicate设定的回调函数会在第12或13帧的时候,触发两次中断,对应的两个不同接收长度。看起来是DMA的接收半完成和完成中断导致的。但是现在我使用的是以时间间隔来分帧的一种通信协议,这样分包接收就不符合我的预期。请问大家解决有什么思路?
查看更多
试了把两个回调函数注释掉能达到我想要的效果,不过不知道有没有副作用
我也遇到过相同的问题我是使用宏定义屏蔽的,不知道行不行。
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
晕,DMA发送也有同样的问题。到缓冲区大小的时候也会出现分包发送。
DMA发送可以不用缓存,数据直接发送,但要注意字节对齐的问题@SNOWA