原帖 | 匿名提问 | 2025-03-28 01:59 | 👍0 | 阅读约1
问: dma idle中断接收不定长的数据。我看网上信息很乱,有一下几个问题
背景: RTOS环境,利用dma双缓冲区。uart发送xxx网络模块指令,xxx网络模块会返回字节。这个过程有5次,每次返回的字节个数分别是2,10,100,150,500,前4次只有最后2个字节是ok,才可下一次的发送指令,须同步。最后一次是目标数据包。
1.关于dma接收设置,预期大小应该怎么设置呢?
设置600?
2.如果设置预期300,怎么合理完成最后的目标数据包的处理呢。
具体的框架流程 谢谢☺️
答(Jack):
这里不能靠dma中断去定长度进入中断,而是要用指针偏移法配合dma空闲中断,每次空闲产生就自动解析数据,但是不要去干预dma,否则容易挂(不用空闲中断时可用串口dma接收,不用idle的话,可以自己查询dma剩余传输长度结合时间来断帧中的剩余长度+时间断帧法)
相关笔记