STM32的USART发送中断标志位USART_IT_TXE和USART_IT_TC

与STM32的发送中断相关的标志位有USART_IT_TXEUSART_IT_TC

根据ST芯片手册的信息可知,USART在发送移位寄存器(Transmit Shift Register)前面,还有一个TDR(Transmit data register)寄存器。芯片手册注图如下:STM32的USART发送中断标志位USART_IT_TXE和USART_IT_TC_第1张图片
芯片手册对TXE的描述如下,向DR寄存器写入数据即可清除TXE标志位。
TXE标志位由硬件置位,产生TXEIE中断标志位,如果开启了TXE中断,则会产生一次中断。
TXE置位,意味着TDR的数据移位到DR寄存器,并已启动发送;TDR寄存器已为空,可以发送下一字节数据到TDR寄存器,并且不会覆盖之前DR寄存器的内容。
STM32的USART发送中断标志位USART_IT_TXE和USART_IT_TC_第2张图片
当传输在进行时,写入DR寄存器的内容被保存到TDR寄存器,等待当前传输完成时,再将TDR寄存器的内容拷贝到DR寄存器,然后执行发送;
当传输未进行时,写入DR寄存器的内容被直接写入到DR移位寄存器,启动数据传输,并立即置TXE位;
每传输完一字节内容,如果TEX位为1,则TC位为1。并且会产生一个中断,如果设置了USART_CR1寄存器的TCIE位。
TC位清除软件顺序:
1.读USART_SR寄存器;
2.写USART_DR寄存器。
STM32的USART发送中断标志位USART_IT_TXE和USART_IT_TC_第3张图片

总结

USART_IT_TXE是在TDR寄存器为空时产生的中断标志位;USART_IT_TC是在DR寄存器发送完最后一个位时产生的中断标志位。

你可能感兴趣的:(STM32)