STM32的USART發送中斷標誌位USART_IT_TXE和USART_IT_TC

與STM32的發送中斷相關的標誌位有USART_IT_TXEUSART_IT_TC

根據ST芯片手冊的信息可知,USART在發送移位寄存器(Transmit Shift Register)前面,還有一個TDR(Transmit data register)寄存器。芯片手冊注圖如下:在這裏插入圖片描述
芯片手冊對TXE的描述如下,向DR寄存器寫入數據即可清除TXE標誌位。
TXE標誌位由硬件置位,產生TXEIE中斷標誌位,如果開啓了TXE中斷,則會產生一次中斷。
TXE置位,意味着TDR的數據移位到DR寄存器,並已啓動發送;TDR寄存器已爲空,可以發送下一字節數據到TDR寄存器,並且不會覆蓋之前DR寄存器的內容。
在這裏插入圖片描述
當傳輸在進行時,寫入DR寄存器的內容被保存到TDR寄存器,等待當前傳輸完成時,再將TDR寄存器的內容拷貝到DR寄存器,然後執行發送;
當傳輸未進行時,寫入DR寄存器的內容被直接寫入到DR移位寄存器,啓動數據傳輸,並立即置TXE位;
每傳輸完一字節內容,如果TEX位爲1,則TC位爲1。並且會產生一箇中斷,如果設置了USART_CR1寄存器的TCIE位。
TC位清除軟件順序:
1.讀USART_SR寄存器;
2.寫USART_DR寄存器。
在這裏插入圖片描述

總結

USART_IT_TXE是在TDR寄存器爲空時產生的中斷標誌位;USART_IT_TC是在DR寄存器發送完最後一個位時產生的中斷標誌位。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章