回xwj大侠,当发送机一直发送,接收机错过起始位的0的情况肯定会有的,比如,接收机上电复位慢于发送机,接收机软复位等,这样开启接收时就会慢于发送机发送,就会出现我说的情况。
至于协议部分,假使通信协议由“同步字段+控制字段+长度字段+帧头校验字段+数据字段+帧结束字段”构成,那么想请问,是否在完整接收此协议内容再去判断是否错误?如是如此,会不会太慢?当出现收到错误数据后,会不会出现一直收不到正确的一帧?还是说应该发一段数据后等待应答正确后才发下一段?
有些单片机如PIC,其串口通讯错误时会返回错误标志(如当停止位检测时发现不是1等),假使发送机正在发送的是协议的中间内容,那接收机是应该马上发数据错误的命令给发送机让其停止发送么?
这么说,串口通讯都应该做成全双工么?即不论发送机还是接收机,都应该写有发送和接收的程序。
|