楼主:描述清楚你的问题,第一次读完,只感觉错包了。细看又没有规律了。

解决方案 »

  1.   

    对的,这就是三种错包的情况。我是考虑会出现这三种错包的情况,当出现错包就报错,正常数据就取出。
      

  2.   

    当出现错包时,将当前报文存储起来,等待下次读取,然后将所哟错包的报文拼接起来,进行分析,找出规律进行解析,如果没有规律的话,你就只能从程序里该了,看一下那些程序在使用这个串口发送数据,然后规定一下规范
      

  3.   

    接收数据包,如果包不完整(不是以##开始,@@结束),将该包处理完后,截取最后面@@后的数据为上一次数据(变量),然后接收下一个数据包,然后将上一次数据(变量)增加至下一串接收到的数据的前面,然后再解析,如此循环。
    如果包完整(是以##开始,@@结束),查找##开始,@@结束,循环截取整个包内中间字符串,上一次数据(变量)=""。