串口通讯数据帧问题
q9923 2011-10-19 11:40:44 现在要用单片机和上位机进行串口通讯,单片机每20秒发送给上位机一个数据帧,其格式是这样的:
ffffff0411aa1e08
其中ffffff是帧头部,04是数据部分的字节数,11aa1e08就是数据部分。数据部分的长度是不固定的。
那请问大家这样的上位机串口程序一般怎样写?我想是先读三个字节判断其是不是ffffff,如果是的话就再读一个字节,然后根据读取的字节大小确定读取数据的长度,在读取之。
但有一个问题是如果由于某种原因某次发送的数据帧格式有错误,比如头部不是ffffff,或者由于某种原因两个数据帧之间发来了一些无效的干扰字节,那我读取了之后怎么办?后面的数据怎么处理?关键问题也就是如何保证错误的帧或干扰字节不影响对之后的帧的采集?
给个思路就好了,不甚感激!