串口数据获取-添加数据起始位,结束位

由于串口传输的时间问题,之前的处理方法是:发送时,添加起始标记和结束标记。如 68 length ........... checksum 16 这样将数据装包,如果检测到有起始位和结束位,那么将数据提取出来,否则,说明数据传输不完整,不处理。

这样子,很合理,但是有问题,就是68 16这些,如果也刚刚好在数据里出现,也刚刚好符合规律,虽然概率很低很低很低,但也还是有可能的。

我个人觉得可以接受这么低概率的事件。

回想通信原理时,它是使用一段比如5个1,‘11111’作为标记,如果数据段出现这种情况,如何改变。忘了呃。查书。。应该是,对于数据段查到连续的4个1,则加一个0。比如,原来的11111变成111101,不是标记。而原来的111101,变成1111001。到了数据段时,检测到有4个连续1后,将后面的一个0去掉。

你可能感兴趣的:(┾GL实习┾)