OpenEdv-开源电子网

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

谁能解决下这个变量赋值的语句

[复制链接]

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2011-4-4
在线时间
0 小时
发表于 2011-4-4 15:59:41 | 显示全部楼层 |阅读模式
void Sys_Standby(void)
{
SCB->SCR|=1<<2;//使能SLEEPDEEP位 (SYS->CTRL)
RCC->APB1ENR|=1<<28; //使能电源时钟
PWR->CSR|=1<<8; //设置WKUP用于唤醒
PWR->CR|=1<<2; //清除Wake-up 标志
PWR->CR|=1<<1; //PDDS置位
WFI_SET(); //执行WFI指令
}
以上面的代码为例子,
“PWR->CR|=1<<2; ”这句中'|='是什么运算符?
‘<<'是左移运算符吗?怎么这么用啊?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2011-3-27
在线时间
5 小时
发表于 2011-4-4 16:50:30 | 显示全部楼层
回复【楼主位】Z_H_Z1102:
-------------------------------
你c语言怎么学的。。。回家看书去
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-4-4 16:58:26 | 显示全部楼层
是要好好看看c语言了.呵呵/
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2011-4-4
在线时间
0 小时
 楼主| 发表于 2011-4-4 17:08:27 | 显示全部楼层
回复【3楼】正点原子:
-------------------------------
请问'|='是赋值的吧,干嘛要写成这么个不常用的啊,‘<<’就是左移是吗,1<<28这个放大的数量级是不是太夸张了啊?
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2011-4-4
在线时间
0 小时
 楼主| 发表于 2011-4-4 18:26:42 | 显示全部楼层
回复【2楼】xzp21st:
-------------------------------
请问'|='是赋值的吧,干嘛要写成这么个不常用的啊,‘<<’就是左移是吗,1<<28这个放大的数量级是不是太夸张了啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2011-4-4 18:55:15 | 显示全部楼层
回复【5楼】Z_H_Z1102:
-------------------------------
软件仿真看看结果吧.
1放到2的28次方,是多少?
呵呵,理解没错,但是理解的方向错了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2011-4-4
在线时间
0 小时
 楼主| 发表于 2011-4-4 20:51:30 | 显示全部楼层
回复【6楼】正点原子:
-------------------------------
我试了下,1<<28等于268435456,我没买JTAG,所以是用vs2008做的,不知道这样行不行?
然后我用
u16 t=0;
t|=1<<28;
这样的句子写进芯片看t的输出值,结果串口出来的值为0,我有好好检查了下  还是0,不知道怎么回事?????????
回复 支持 反对

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2011-3-27
在线时间
5 小时
发表于 2011-4-4 22:11:21 | 显示全部楼层
回复【7楼】Z_H_Z1102:
-------------------------------
u16才多少位,1<<28都移到哪里去了?
t|=1<<28;这句的意思将t的位28置1。
举个例子:
t=t+1 <=> t+=1
t|=1  <=> t = t |1
明白 
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2011-4-4
在线时间
0 小时
 楼主| 发表于 2011-4-5 15:31:57 | 显示全部楼层
回复【8楼】xzp21st:
----------------------------
明白了 谢谢~~~~~~~~~~~~
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 16:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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