串口协议本身是物理层的,有奇偶校验。但没有规定错误处理的方法。如果需要重发,需要自己实现数据链路层协议,可以采样CRC校验一组数据,如果CRC校验错误,发送指令给对方让对方重新传输。这个过程还是有些复杂的,类似于TCP/IP协议栈,相当于自己实现部分协议栈的底层功能。
如果每一次传输的数据不会很长的话,可采用问答方式。传输双方每一次发送数据和校验码,等待对方会送校验结果,如果正确传输下一部分数据,否则重新传输刚才的数据。