这个要看你中断的优先级了,如果发送不成功,这时候协议就起作用了,协议会给一个接受不成功的信号,要求重发
解决办法就是编个协议,甲方发送的数据乙方收到后回复一个指令,比如甲发:0x2a 乙收到了就返回个数 比如0x0d
在发送前可以先询问乙的状态,如果正忙则继续询问,直到乙端可以接收数据
是这样的,串口之间要能很好的互相通信,就要有比较严格的波特率,约好用什么样的校验,等等就是所说的协议
你所担心的是这样的,串口能信发送方在发送之前它会呼叫接收方,看对方是否准备好接收,那发送方发送一个应答信号,发送方才会发送数据,不会有像人担心的那样,接收方没有准备好就发送
同样在接收完以后,接收方也会发出一个信号,请求对方发送,这也就是采用中断来进行串口通信,那么要是用查讯的方法的话,cpu会在每个机器周期对这个信号进行查讯,以做出相应的动作
像你说的接收方将RI清零之前,发送方的数椐会不会丢,那cpu先会检测看你的ri是不己经允许接收,是不己经准备好,等允许后才会发送数据,