求助:用串口连续不断接收数据?

2019-07-20 19:50发布

各位大神,有没有做过这样一个类似项目:发动机ECU通过RS232串口向外连续不断发送数据(波特率19200),每帧数据包括144个字节(末尾3个为标志字节FC FB FA),每帧数据间隔130us,我现在想接收得到其中的某几个字节用来显示,请问这个数据接收协议怎么写才能保证接收数据不丢失,而且能正确显示我所需要的字节
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-20 23:01
做FIFO接收,然后处理细节优化好就没问题。
冰封嗜魔
2楼-- · 2019-07-21 00:07
读尾,读到后按长度和下一个尾提取这一包数据,正确的话提取那几个字节。这个发送频率这么高,如果接收中断里面处理来不及的话就先将提取的数据包存入缓冲区,然后主程序每次循环的时候去解包、提取那几个数据。缓冲区大小根据实际情况来定义,缓冲区的插入和读取需要处理好。
特朗姆斯
3楼-- · 2019-07-21 04:05
本帖最后由 特朗姆斯 于 2016-9-28 17:19 编辑

这个频率接收数据对于MCU的压力非常小,19200的波特率大概也就1ms~2ms之间接收一个数据。

除非你处理数据的算法非常复杂(基本不可能),否则完全处理的过来。

一周热门 更多>