串行口里有一个发送数据寄存器和一个移位寄存器,程序是把数据放到发送数据寄存器的,当移位寄存器没有数据在发送时,发送数据寄存器会把数据传给移位寄存器然后一位一位的从数据发送脚发送出去。当发送寄存器没有数据的时候TXE一直是为1的。而TC是指数据从移位寄存器全部移出后,才会置1。所以编程的时候,一般刚开始数据寄存器没有数据,一旦使能TXE中断,会立即进入中断,而且这个标志清不掉的,需要发送完数据后,禁止该中断。而且进入这个中断填完最后一个数据后,还没有发送出去。所以485通信一般最后需要用TC中断来切换发送接收脚。
|
|