OpenEdv-开源电子网

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

新人提问,知道的帮一下兄弟

[复制链接]

23

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2015-1-19
在线时间
28 小时
发表于 2015-1-19 10:24:00 | 显示全部楼层 |阅读模式
5金钱
哪位仁兄帮忙解决一下我标注的位置为什么是这样

最佳答案

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

好好看看USART_RX_STA这个变量的定义部分
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11734
金钱
11734
注册时间
2013-3-8
在线时间
1250 小时
发表于 2015-1-19 10:24:01 | 显示全部楼层
好好看看USART_RX_STA这个变量的定义部分
回复

使用道具 举报

14

主题

490

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1229
金钱
1229
注册时间
2012-8-4
在线时间
248 小时
发表于 2015-1-19 13:56:26 | 显示全部楼层
1&0x8000不得一吗,,,,,这亮了
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复

使用道具 举报

7

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2014-10-19
在线时间
32 小时
发表于 2015-1-19 16:49:48 | 显示全部楼层
原子的手册或者书上都有详细说明的,其实说起来那个也没什么用处,可以删了的
回复

使用道具 举报

7

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2014-10-19
在线时间
32 小时
发表于 2015-1-19 16:53:20 | 显示全部楼层
就像是寄存器
回复

使用道具 举报

23

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2015-1-19
在线时间
28 小时
 楼主| 发表于 2015-1-20 09:35:04 | 显示全部楼层
回复【3楼】muniao:
---------------------------------
我的意思时如果执行if语句里面应该是1才对,但是1&0x8000是0,兄弟帮忙解答一下不要看笑话
回复

使用道具 举报

23

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2015-1-19
在线时间
28 小时
 楼主| 发表于 2015-1-20 09:35:47 | 显示全部楼层
回复【2楼】augustedward:
---------------------------------
他定义的时候就说他是一个标志位要么是1要么是0
回复

使用道具 举报

23

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2015-1-19
在线时间
28 小时
 楼主| 发表于 2015-1-20 09:36:25 | 显示全部楼层
回复【2楼】augustedward:
---------------------------------
回复【5楼】忧伤乐观人:
---------------------------------
能在详细一点吗
回复

使用道具 举报

23

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2015-1-19
在线时间
28 小时
 楼主| 发表于 2015-1-20 09:36:56 | 显示全部楼层
回复【4楼】忧伤乐观人:
---------------------------------
没有找到的说,只说他是标志位
回复

使用道具 举报

58

主题

6293

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11472
金钱
11472
注册时间
2014-4-1
在线时间
1296 小时
发表于 2015-1-20 10:08:26 | 显示全部楼层
这是个自己定义的标志位,

收到数A时,则设置为大概0x4000(记不清了);
再收到数B时,则设置为0x8000;
那么,if 这句意思是说,在前两步成功的基础上(A、B都正确收到),再如何如何。
回复

使用道具 举报

9

主题

1385

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
11734
金钱
11734
注册时间
2013-3-8
在线时间
1250 小时
发表于 2015-1-20 12:07:22 | 显示全部楼层
回复【8楼】黑小莓:
---------------------------------
//接收状态
//bit15, 接收完成标志
//bit14, 接收到0x0d
//bit13~0, 接收到的有效字节数目
u16 USART_RX_STA=0;       //接收状态标记

相当于一个状态寄存器。最高位bit15位为1表示接收完成,为0表示未接收完成。
USART_RX_STA&0x8000怎么能是1&0x8000呢。
if()语句,里面只要为真就执行,不一定必须是1才执行啊。
当接收完成时,USART_RX_STA的最高位为1,其他位可能为1也可能为0。
但比较的是最高位,所以就用USART_RX_STA&0x8000进行比较,屏弊掉其他位。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 03:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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