OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2305|回复: 6

USART1时钟初始化之后,TC与TXE为什么就置位了?

[复制链接]

12

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2019-5-27
在线时间
74 小时
发表于 2019-8-21 12:08:49 | 显示全部楼层 |阅读模式
5金钱
       在对USART1逐步调试的时候发现,当逐步调试到“RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);”
串口初始化程序的时候TC(发送完成标志位)与TXE(发送数据寄存器为空标志位)已经置1????????
       在串口初始化中将TC位清零之后,执行完串口初始化程序之后又置位了?
       这两位复位值都是0啊,不是太理解!!!


最佳答案

查看完整内容[请看2#楼]

这种问题仔细看手册,手册里描述得很清楚 An interrupt is generated if the TXEIE/TXFNFIE bit =1 in the USART_CR1 register. 0: Data register is full. 数据寄存器不为空 1: Data register is not full. 数据寄存器为空 TC: Transmission complete 0: Transmission is not complete 1: Transmission is complete Note: If TE bit is reset and no transmission is on going, the TC bit will be set immedi ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2019-3-6
在线时间
36 小时
发表于 2019-8-21 12:08:50 | 显示全部楼层
这种问题仔细看手册,手册里描述得很清楚

An interrupt is generated if the TXEIE/TXFNFIE bit =1 in the USART_CR1 register.
0: Data register is full.        数据寄存器不为空
1: Data register is not full.  数据寄存器为空

TC: Transmission complete
0: Transmission is not complete
1: Transmission is complete
Note: If TE bit is reset and no transmission is on going, the TC bit will be set immediately. 如果TE被reset且没有传输任何数据,TC则会立刻被置位


解决思路之一就是在串口初始化函数中不要开启TXE和TC,如果需要这两种中断,在发送函数里开启也行,数据发送完毕后再关掉,不然在静止状态时会没完没了地产生中断。
回复

使用道具 举报

12

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2019-5-27
在线时间
74 小时
 楼主| 发表于 2019-8-21 16:00:13 | 显示全部楼层
说的也不知道对不对,之所以在串口使能之前这两个位置位,是为了发送数据做准备
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2019-8-22 02:48:29 | 显示全部楼层
不用管这些,你用我们的配置就好了。
回复

使用道具 举报

12

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2019-5-27
在线时间
74 小时
 楼主| 发表于 2019-8-26 09:03:37 | 显示全部楼层
正点原子 发表于 2019-8-22 02:48
不用管这些,你用我们的配置就好了。

有时候自己也会钻些牛角尖,就会查阅很多资料,但是懂了之后,对这个知识点也就更加清楚,宏观上有个整体的认识。
回复

使用道具 举报

12

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
金钱
262
注册时间
2019-5-27
在线时间
74 小时
 楼主| 发表于 2019-8-26 19:26:18 | 显示全部楼层
QuiGonJinn 发表于 2019-8-26 10:26
这种问题仔细看手册,手册里描述得很清楚

An interrupt is generated if the TXEIE/TXFNFIE bit =1 in t ...

谢谢答疑,但是你这个英文资料那里找的?我找遍了原子哥给的资料都没有啊,能否提供一份?
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2019-4-24
在线时间
9 小时
发表于 2019-8-27 09:21:38 | 显示全部楼层
官方的 手册啊,参考手册
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 06:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表