STM32串口如何编写多包数据的解析程序,思路不是很清楚,希望大家提供个思路

2019-10-15 23:55发布

我现在做关于客户端下发数据,我通过串口接收后进行分析协议,提取数据,但是遇到多包数据的时候有个问题,比如这个数据包有3包,我应该是接收完第一包后,保存第一包数据的内容,给客户端应答数据,客户端收到应答后,给我下发第二包数据,我在解析第二包数据,拼接到第一包数据的后面,判断下是否到达最后一包,如果到达最后一包数据,这时在开始进行整个数据包的分析,思路我会,但是在程序中实现我还么有编程思路,请大家帮我出个主意或是思路
数据包的内容格式:标识位------------消息头(包含是否分包标志,数据长度内容,数据包来源(ID号),包选项(总包数。和当前是第几包数据))---------------消息体---------------校验位---------标识位;

问题:对于不分包的数据我已经完成解析工作了,就是按照数据内容,一步步的分析,完成整包数据校验---提取相应的 ID号------消息体内容-------根据消息内容执行功能。
但是对于多包数据,还是没有一个完整的可行的数据包分析方法,想在我这个单包数据分析程序中加几个标志位,判断数据包的是否完整的接收,没有到最后一包的时候就进行数据包拼接处理,等到都收完了,相关标志位置位,然后去整个分析数据包,这样是否可行,还是需要把我现有的单包分析数据架构重写,满足多包数据的接收和分析架构呢,

如果大家有什么好的架构或是思路能分享一下么,尽量说的详细一下,谢谢啦
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。