串口的标志位 USART_FLAG_TXE 和USART_FLAG_TC的理解;

2019-07-20 07:12发布

大家好,原子哥好;
我在看串口的内容,看到状态标志位的时候,发现USART_FLAG_TXE 和USART_FLAG_TC,如图;
我怎么感觉二者的作用是相同的呢?比如第一个标志位为1的时候,不就是代表寄存器的数据发送完毕了吗?
第二个为1不上也是表示数据发送完毕吗?那为什么还要搞两个呢,这不重复吗?
请各位大师指点,看看我的理解哪里有误,同时能给我讲讲二者区别最好了,帮忙指点;谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
ldskendy
2019-07-21 03:39
xuande 发表于 2015-9-11 07:41
回复【4楼】wolfcan:
---------------------------------
TXE是指“弹仓”空;
TC是“枪膛”空。

这个形象。
也就是说,你写数据到串口时,是装入弹仓,硬件会将数据移到枪膛,这时,TXE为1,TC为0,STM32硬件的TX脚正在发送数据,但你还可以装入数据到弹仓,装入后,TXE为0,TC为0.
TX发送完一个数据后,立即将数据从弹仓移入枪膛,这时,TXE为1,TC为0.
最后TX发送完数据,你又没有装入新数据,这时。TXE为1,TC为1.

一周热门 更多>