OpenEdv-开源电子网

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

?while((SPI2->SR&1<<1)==0) //等待发送区空

[复制链接]

13

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
金钱
223
注册时间
2015-9-15
在线时间
36 小时
发表于 2015-9-17 14:51:17 | 显示全部楼层 |阅读模式
5金钱

while((SPI2->SR&1<<1)==0) //等待发送区空

这条指令可以改成下面的吗

while((SPI2->SR&0X01)==0) //等待发送区空

最佳答案

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

你首先得知道,1<<1是多少????? 为何要这样写? 1<<1,是告诉你,前面一个1是这个位要操作的值,后面一个1,是代表这个位在哪里。。。 比如1<<5,立马看出来,是第5位。。。 很明显。。。1<<1不等于0x01.....1<<1等于0x02
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2015-9-17 14:51:18 | 显示全部楼层
你首先得知道,1<<1是多少?????
为何要这样写?
1<<1,是告诉你,前面一个1是这个位要操作的值,后面一个1,是代表这个位在哪里。。。

比如1<<5,立马看出来,是第5位。。。

很明显。。。1<<1不等于0x01.....1<<1等于0x02
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

13

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
金钱
223
注册时间
2015-9-15
在线时间
36 小时
 楼主| 发表于 2015-9-19 18:26:55 | 显示全部楼层
回复【2楼】Admin:
---------------------------------
if((USART_RX_STA&0x8000)==0)//接收未完成

这里怎么又可以这样写呢,搞不懂????
回复

使用道具 举报

1

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2012-11-8
在线时间
44 小时
发表于 2015-9-19 22:00:28 | 显示全部楼层
回复【3楼】小鱼人:
---------------------------------
USART_RX_STA&0x8000   表示取USART_RX_STA变量的第32位的值  请看《数字电子线路基础》的前几章
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 21:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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