OpenEdv-开源电子网

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

(USART1->SR&0X40)这句话什么意思?怎么还有个与运算?

[复制链接]

8

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2014-3-12
在线时间
0 小时
发表于 2014-3-27 22:51:58 | 显示全部楼层 |阅读模式
(USART1->SR&0X40)==0这句话什么意思?怎么还有个与运算?
还有这句(USART_RX_STA&0x80)==0的意思??
多谢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2019-7-23
在线时间
18 小时
发表于 2019-9-17 20:35:30 | 显示全部楼层
位6  TC:发送完成标志
若 为 1 则发送未完成
若为  0  则完成
回复 支持 1 反对 1

使用道具 举报

2

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2016-6-12
在线时间
12 小时
发表于 2016-7-15 15:16:22 | 显示全部楼层
这样是怎么判断接收结束的??第6位和第七位=0就结束了??
回复 支持 0 反对 1

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-3-27 23:26:16 | 显示全部楼层
就是判断第六位是不是0,和判断第七位是不是0.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2014-3-12
在线时间
0 小时
 楼主| 发表于 2014-3-27 23:31:26 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
USART_RX_STA里面的STA并不是寄存器啊??
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-3-27 23:59:46 | 显示全部楼层
回复【3楼】玉米鲜人掌:
---------------------------------
恩,是个变量。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2017-12-8
在线时间
1 小时
发表于 2019-1-22 16:16:43 | 显示全部楼层
第一句话  SR寄存器的第七位为1,则表示数据已经发送完成
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2017-12-8
在线时间
1 小时
发表于 2019-1-22 16:18:58 | 显示全部楼层
第二句  USART_RX_STA是正点原子库函数手册中设置的通信协议的一部分,当USART_RX_STA最高位为1时,表示数据已经接收完成
回复 支持 反对

使用道具 举报

0

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2019-1-3
在线时间
22 小时
发表于 2019-4-22 18:12:39 | 显示全部楼层
正点原子 发表于 2014-3-27 23:26
就是判断第六位是不是0,和判断第七位是不是0.

原子哥,USART_RX_STA&0x80到底是判断第7位还是第8位。我一直以为是第八位啊,现在又疑惑了
回复 支持 反对

使用道具 举报

13

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2019-3-14
在线时间
25 小时
发表于 2019-4-22 21:28:18 | 显示全部楼层
阳SS 发表于 2019-4-22 18:12
原子哥,USART_RX_STA&0x80到底是判断第7位还是第8位。我一直以为是第八位啊,现在又疑惑了

0x80是十六进制,你换成二进制就知道是第几位了,最低位是的位号是bit[0]。
回复 支持 反对

使用道具 举报

0

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
137
金钱
137
注册时间
2019-1-3
在线时间
22 小时
发表于 2019-4-23 14:33:37 | 显示全部楼层
米斯特R 发表于 2019-4-22 21:28
0x80是十六进制,你换成二进制就知道是第几位了,最低位是的位号是bit[0]。

那按这样算,最低位可以理解为第零位吗
回复 支持 反对

使用道具 举报

13

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2019-3-14
在线时间
25 小时
发表于 2019-4-23 14:41:29 | 显示全部楼层
阳SS 发表于 2019-4-23 14:33
那按这样算,最低位可以理解为第零位吗

可以的
回复 支持 反对

使用道具 举报

3

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
293
金钱
293
注册时间
2019-6-29
在线时间
90 小时
发表于 2019-7-20 16:29:04 | 显示全部楼层
不是0就是1,没有第三种可能,0x40转化成二进制100 0000   SR寄存器第七位的  “while((USART1->SR&0X40)==0);//循环发送,直到发送完毕  
SR寄存器详解见 stm32中文参考手册P540。
道生一,一生二,二生三,三生万物
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2019-7-14
在线时间
9 小时
发表于 2019-8-8 18:04:59 | 显示全部楼层
yanghuai8341 发表于 2019-7-20 16:29
不是0就是1,没有第三种可能,0x40转化成二进制100 0000   SR寄存器第七位的  “while((USART1->SR&0X40)== ...

懂了
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2017-10-19
在线时间
11 小时
发表于 2019-12-7 20:49:46 | 显示全部楼层
如果我没有记错,这个代码是在8266的是否退出透传模式函数中,其中一个重要的判断就是要判断USART的第七位(STM32中文手册P540)也就是SR的TC位是否为0,如果为0,则代表还没有传输完成,所以进入while,DR->"+",连续三次,如果最终指令是:“+++”,则退出透传模式,至于退出透传模式进一步怎么操作,原子在8266的指导意见中写清楚了。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 12:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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