stm32里面的USART的这两个标志位有区别吗

一个发送区寄存器为空,一个是发送完成有什么区别呢... 一个发送区寄存器为空,一个是发送完成有什么区别呢 展开
 我来答
百度网友8fd350d
2015-01-13 · TA获得超过737个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:195万
展开全部
TXE标示的是发送区为空;当你第一次配置好USART时,TXE就已经置1了,也就意味着,如果你开启TXE中断,但是没有在开中断指令之前向发送数据寄存器中写入任意数据,就会立马进入中断,后续动作无法实行。
TC标示的是发送完成;也就是当你向发送数据寄存器写入数据后,USART将数据发送出去之后才会置位,如果开启了中断,也是在数据发送出去之后才产生中断。
两者的区别就是,TXE是判断发送寄存器是否为空,TC判断发送是否完成。

就像一个碗里面,TXE表示碗里面已经没有饭了,而TC是表示你把碗里面的饭吃完了。
如果初始状态是你的碗里面乘了饭,那两者的意思相同;
但是,如果初始状态是碗里面没有饭,区别就出现了。
更多追问追答
追问
不是很懂,那么他们功能是什么呢?TC置1就是发送完成了,可以发送下一帧了,TXE讲的是一个寄存器,感觉还是差不多,
追答
数据的发送是由三步组成:
一、将数据写入发送数据缓冲器(USART_DR)中;
二、控制芯片自动将发送数据缓冲器(USART_DR)中数据通过移位寄存器逐位移向TX线(硬件线);
三、数据移位完成后(USART_DR为空),标志位置位,如果使能了中断,产生中断。

如果要TC置位,则必须上面三步都存在;
而TXE置位,只要USART_DR为空就行,不管你是不是发送了数据;

在芯片上电复位时,这个时候USART_DR里面是没有数据的,也就是空的,这个时候TXE就已经置位了。但是TC还是为0。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式