关于USART_FLAG_TC位的疑问

2019-07-20 20:30发布

大家好,在学习USART通信实验时,看到  
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
于是就在中文参考手册中参考了TC的清零方法:
“该位由软件序列清零(读取 USART_SR 寄存器,然后写入USART_DR 寄存器)。TC 位也可以通过向该位写入‘0’来清零”
可见,可以采用先读SR,再写DR的方式清零;或直接向TC位写0.
现在有一个小小的疑问:
例如,USART_RX_BUF数组中有三个数据,123.
当t=0时,通过USART_SendData()发送第一个数据1;接着执行while语句,若没有发送完成,则while等待;若发送完成,此时,
USART_GetFlagStatus()返回SET,这时,TC位为1.
接着执行t=1,通过USART_SendData()发送第二个数据2;接着执行while语言,那么问题来了,t=0时的TC位是怎么清零的呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
xkwy
1楼-- · 2019-07-21 11:17
 精彩回答 2  元偷偷看……
xkwy
2楼-- · 2019-07-21 15:01
再说一遍,我本人对你的这份探索之心是非常肯定的,这也是我一直在做的事情
我认为学习,就是在做哪些看起来无意义的东西,
而不是像公司里那样,拿钱,出效果,时间长了,自己内心对技术的那份热心也消磨完了。
时刻记着你是在学习,不是在完成任务,这种方式固然可能慢些,但收获的,都是干货

某些人不中肯的话亦可不必理会。

共勉。
学习stm32f4
3楼-- · 2019-07-21 20:13
 精彩回答 2  元偷偷看……

一周热门 更多>