资讯动态

【单片机】串口的环形队列通信

发布时间:2026/8/22 9:26:44 来源:尧图企业网站定制
全双工通信模型用环无需状态机补充上图中“可以在中断也可以在收到消息后”这个“中断”指的是上面的空闲或者满不是接收非空中断。DMA循环模式的半满和满中断发生时DMA会继续运行的。正常模式的半满中断发生时DMA继续运行满中断发生时则停止需要重新启动。如果发生错误中断则停止。使用DMA则适用此模型。半双工通信模型用状态机无需环补充发送的时候开发送关接收空闲和接收的时候开接收关发送。接收完成时保持不变也可以发送接收都关但是没必要关。半双工要么发要么收在中间加一个都关比较奇怪。同时关了就要开增加不必要的操作。半双工不使用环是因为有状态机的切换在“COM_RECVED”的状态下无法接收新数据环没有意义。如果你改造代码在“COM_RECVED”的状态下能接收数据不如直接使用全双工通信模型。全双工模型可以兼容485接口通信环的操作主要处理断帧问题同时这个断帧无法用超时解决这种情况下就只能用全双工模型如果能用超时解决断帧问题则可以考虑使用半双工。连包问题的解决在于解析无所谓半双工全双工。以上都是通信链路层模型开发时最好链路层和协议层解耦物理层就是底层的串口或者SPI。批量解析和流式解析批量解析和流式解析一般都是中断收数据主流程判断报文是否完整区别在于批量解析没有状态机每次判断都把所有字节拿出来判断流式解析有一个状态机每次判断都会记录下当前状态下次只取新数据判断。半双工模型只适用批量解析全双工模型可用流式解析和批量解析全双工下一般会有个较长的重置时间1s超过1s没有新数据重置接收缓存和解析状态。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价