串口通信时假如上位机发8个字节数据给单片机,若因其他因素数据发多于8个字节或发少于8个字节,单片
1个回答
展开全部
简单点说,是通过校验。
通过校验,接收端可以知道接收到数据是不是完整,有没有出错。当然,这需要发送端配合发送额外的校验信息。
复杂点说,就要讨论发送端的“配合”问题了。说白了,就是通信双方要有一套完整的约定,或者说是协议。比如双方约定,通信过程中如果出现间隔大于10ms的空白期,则认为通信结束。那么接收端就可以通过超时功能检测数据包的起始。发送端,则要保证正常通信过程中不能出现10ms以上的停顿,而发送完一段数据后,停10ms再继续下次通信。这是最简单的约定,其他通信数据的长度,校验算法,遇到出错情况的处理,也都需要双方约定。
说实话,做一个“完整”的通信协议并不是很简单的事,可以参考一些现成的通信协议,比如MODBUS
通过校验,接收端可以知道接收到数据是不是完整,有没有出错。当然,这需要发送端配合发送额外的校验信息。
复杂点说,就要讨论发送端的“配合”问题了。说白了,就是通信双方要有一套完整的约定,或者说是协议。比如双方约定,通信过程中如果出现间隔大于10ms的空白期,则认为通信结束。那么接收端就可以通过超时功能检测数据包的起始。发送端,则要保证正常通信过程中不能出现10ms以上的停顿,而发送完一段数据后,停10ms再继续下次通信。这是最简单的约定,其他通信数据的长度,校验算法,遇到出错情况的处理,也都需要双方约定。
说实话,做一个“完整”的通信协议并不是很简单的事,可以参考一些现成的通信协议,比如MODBUS
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询