====== 关于串口通讯协议 ===========
我开发软件用于接收串口发送来的数据。现在有这样一个问题
假设协议约定
00 00 00 04 0f 0e ff ff
前面4个字节表示整个数据有多长 这里04 表示后面有 4 个字节
最后两字节 ff ff 为crc16
如果传输有误,04 变成了 05
那么认为没有接收完成, 等待下一个数据到来,假设接下来收到另一条正确的
00 00 00 04 0f 0e ff ff
此时认为这样的数据是一个完整的
00 00 00 05(误传的) 0f 0e ff ff 00
此时crc16校验失败,放弃此条数据,那么问题是后面接下来的所有数据都错了,怎么解决?
此种情况下应该关闭串口再打开吗?还有什么更好的方法?多谢!