========= 串口通讯协议的问题 =========
我开发软件用于接收串口发送来的数据。现在有这样一个问题
假设协议约定
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校验失败,放弃此条数据,那么问题是后面接下来的所有数据都错了,怎么解决?
此种情况下应该关闭串口再打开吗?还有什么更好的方法?多谢!
假设协议约定
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校验失败,放弃此条数据,那么问题是后面接下来的所有数据都错了,怎么解决?
此种情况下应该关闭串口再打开吗?还有什么更好的方法?多谢!
...全文
相关推荐
绝对简单好用的迪文串口屏串口通讯协议库(STM32)
STM32环境下,绝对简单好用的迪文串口屏串口通讯协议库,这个我已经实际用了,实测DMT48270C043_04WN可以完美应用
山特UPS串口通讯协议
文档为山特公司出品的单进单出UPS 串口通讯协议
RS485 串口通讯协议
RS485 串口通讯协议 RS485 通讯协议 一.首先要知道什么是 RS232和 RS485. 典型的串行通讯标准是 RS232和 RS485.它们定义了电压,阻抗等.但不对软件协议给予定义区别于 RS232
山特UPS串口通讯协议 2018
KELONGPowersoft交流电源监控管理系统前端智能设备通讯协议通讯协议内部标准,山特UPS串口通讯协议
串口通讯MODBUS通讯协议例子
Visual C++串口通讯MODBUS通讯协议例子,希望对大家有用。


网络及通讯开发

