嵌入式开发初学,下面这段代码什么意思啊?

rGPBCON&=~((0x3<<(2*5))|(0x3<<(2*6))|(0x3<<(2*7))|(0x3<<(2*8)));问一下:这里的0x3怎么来的,可以写成其他... rGPBCON &=~((0x3<<(2*5))|(0x3<<(2*6))|(0x3<<(2*7))|(0x3<<(2*8)));
问一下:这里的0x3怎么来的,可以写成其他的吗?有什么规则吗。
rGPBCON |=(0x01<<(2*5))|(0x01<<(2*6))|(0x01<<(2*7))|(0x01<<(2*8));
这里的0x01又是怎么来的呢。
rGPBUP |=0xf<<5;
这句话什么意思,0xf和5怎么来的呢
rGPBDAT |=0xf<<5;
展开
 我来答
cdyzxy
推荐于2016-11-10 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3734万
展开全部

当我们要将GPB0~10中某位管脚设置成输入状态时,需要在GPBCON寄存器中对应位设置0;

例如:

  要设置GPB0为输入时,设置GPBCON第0、第1位为0,

      我们的做法是将这个寄存器与上一个数,这个数最低两位全0,结果是寄存器其它位不变,

              而仅这两位清0:rGPBCON&=0xFFFFFFFC;

                           也就是:rGPBCON&=(~0x03);

                           也就是:rGPBCON&=(~(0x03<<0));

  要设置GPB6为输入时,设置GPBCON第12、第13位为0,

      我们的做法是将这个寄存器与上一个数,这个数这两位全0,结果是寄存器其它位不变,

              而仅这两位清0:rGPBCON&=0xFFFFCFFF;

                           也就是:rGPBCON&=(~0x03000);

                           也就是:rGPBCON&=(~(0x03<<12));

                           也就是:rGPBCON&=(~(0x03<<2*6));

  而rGPBCON&=(~((0x03<<2*6)|(0x03<<2*7)));则可以将GPB6和GPB7同时设置为输入。

所以rGPBCON &=~((0x3<<(2*5))|(0x3<<(2*6))|(0x3<<(2*7))|(0x3<<(2*8)));一看就知道,这句将GPB5,GPB6,GPB7和GPB8全都设置成了输入。这个0x03就是意图在取反后这两位都是0。

 同理rGPBCON |=(0x01<<(2*5))|(0x01<<(2*6))|(0x01<<(2*7))|(0x01<<(2*8));将GPB5~8均设置成输入。

 0x01和0x03可查芯片数据手册关于GBPCON设置部分,见后面图片,其中说明某位为00时对应输入、01时对应输出,01和03就是这么来的。

 至于rGPBUP |=0xf<<5;和rGPBDAT |=0xf<<5;可手算程序设置了那些位并去数据手册查相应寄存器位的定义。

fb66886688
2013-11-13 · 超过13用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:38.8万
展开全部
0x3是16进制化成二进制就是11。意思就是把rGPBCON寄存器的(2*5)位和(2*5)+1那位清零。后面也是这个意思。清零以后根据你用的芯片手册查到这个寄存器线对应的位的功能设值就有下面这一条rGPBCON |=(0x01<<(2*5))|(0x01<<(2*6))|(0x01<<(2*7))|(0x01<<(2*8));意思是吧(2*5)位和(2*5)+1那位写入为01,具体01是什么就只能查手册看手册说明。rGPBUP |=0xf<<5;而一句就是把rGPBUP这个寄存器的5到9位写1.同理下面也是。如果你要知道它怎么来的,你打开你的芯片手册,查找到对应的寄存器,在按你寄存器设的值差看是什么功能。不同芯片意思不一样,不同架构也不一样,所以你只能找到你这个芯片手册查看才知道。反过来,你要实现某种功能就是反过来做。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
川越时空O等你
2013-11-13 · TA获得超过113个赞
知道答主
回答量:139
采纳率:0%
帮助的人:64.2万
展开全部
0x3 是0b0011 就是将某两位置位 !
学到嵌入式了 位移指令应该要弄得很清楚才是了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7bbac528f8
2013-11-13 · TA获得超过598个赞
知道小有建树答主
回答量:1706
采纳率:50%
帮助的人:951万
展开全部
请看数据手册吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式