TXE标示的是发送区为空;当你第一次配置好USART时,TXE就已经置1了,也就意味着,如果你开启TXE中断,但是没有在开中断指令之前向发送数据寄存器中写入任意数据,就会立马进入中断,后续动作无法实行。
TC标示的是发送完成;也就是当你向发送数据寄存器写入数据后,USART将数据发送出去之后才会置位,如果开启了中断,也是在数据发送出去之后才产生中断。
两者的区别就是,TXE是判断发送寄存器是否为空,TC判断发送是否完成。
就像一个碗里面,TXE表示碗里面已经没有饭了,而TC是表示你把碗里面的饭吃完了。
如果初始状态是你的碗里面乘了饭,那两者的意思相同;
但是,如果初始状态是碗里面没有饭,区别就出现了。