zhai 在 MC0 Mcal的UART问题 中说:
RuiXu 刚刚试了一下,按照这种方式操作,也是发送完成后才能进行回读,比如要发送2字节,中断进入顺序是TX_EMPTY->TX_EMPTY->END_TX->RX_FULL->END_RX。还是不能实现最初的一个字节发送错误就立即终止后续发送需求
连续两次进入TX_EMPTY是由于TX_EMPTY的中断响应时间太快了,可能响应第二次中断的时候第一个字节还没有接收完成。校验有一定的滞后性,但是比发送多个字节后响应IDLE校验要好一些。由于MC0没有硬件回读的功能,因此目前只有这种方法。或者可尝试修改底层代码,只使用TX完成中断作为发送中断,这样理论上也可以,但是要修改底层逻辑