OpenEdv-开源电子网

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

GPIO操作寄存器,求助。

[复制链接]

15

主题

79

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-2-14
在线时间
37 小时
发表于 2016-4-11 11:26:06 | 显示全部楼层 |阅读模式
5金钱
#define DS18B20_IO_IN()  {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8<<12;}
#define DS18B20_IO_OUT() {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=3<<12;}
这是原子哥的操作PG11,那如果我在操作的是PE1,那我该怎么改呢?
8<<12:  这个是数字8左移了12位?怎么理解呢? 1000左移了1100?怎么理解 谢谢!!!

最佳答案

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

GPIOG表示G口,E口。。。 b1左移1位等于b10,移2位等于b100; b10左移1位等于b100,移2位等于b1000; 。。。。 自己理一理。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11570
金钱
11570
注册时间
2014-4-1
在线时间
1320 小时
发表于 2016-4-11 11:26:07 | 显示全部楼层

GPIOG表示G口,E口。。。

b1左移1位等于b10,移2位等于b100;
b10左移1位等于b100,移2位等于b1000;
。。。。

自己理一理。


回复

使用道具 举报

15

主题

79

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-2-14
在线时间
37 小时
 楼主| 发表于 2016-4-11 11:57:02 | 显示全部楼层
xuande 发表于 2016-4-11 11:47
GPIOG表示G口,E口。。。

b1左移1位等于b10,移2位等于b100;

您好,谢谢。您说的这个我懂。就是8<<12  这是8左移12位?8000000000000???
回复

使用道具 举报

15

主题

79

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2016-2-14
在线时间
37 小时
 楼主| 发表于 2016-4-11 12:09:15 | 显示全部楼层
xuande 发表于 2016-4-11 11:47
GPIOG表示G口,E口。。。

b1左移1位等于b10,移2位等于b100;

我又想了下这个位数,懂了。谢谢您了。
回复

使用道具 举报

56

主题

520

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2014-11-18
在线时间
160 小时
发表于 2016-4-11 12:14:35 | 显示全部楼层
总共是16位,0~15.所以寄存器分为了H和L。GPIOG->CRH&=0XFFFF0FFF;第四个F是零,所以选择的是11,(从PG8开始数)。GPIOG->CRH|=8<<12;这里为什么是左移12为呢?因为对应的是第4个F。假如是PG8他就是左移0.  然后是在问为什么是8呢?8代表的是输入配置,这个是去查寄存器配置很清楚的,3是推挽输出。

8:1000 左移12位就是    1000 0000 0000 0000   也就是GPIOG->CRH的第15位是1  其他配置保持不变。
自己选择的路,成家前走完。
回复

使用道具 举报

62

主题

903

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3567
金钱
3567
注册时间
2016-1-8
在线时间
544 小时
发表于 2016-4-11 12:25:24 | 显示全部楼层
自己封装一个就好,不用寄存器
回复

使用道具 举报

50

主题

193

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-4-11
在线时间
141 小时
发表于 2016-4-11 15:50:38 | 显示全部楼层
why3354503 发表于 2016-4-11 12:09
我又想了下这个位数,懂了。谢谢您了。

#define DS18B20_IO_IN()  {GPIOE->CRL&=0XFFFFFF0F;GPIOE->CRL|=8<<4;}
#define DS18B20_IO_OUT() {GPIOE->CRL&=0XFFFFFF0F;GPIOE->CRL|=3<<4;}
这样定义是对的吧?
针对PE1。我也学习下。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-11 06:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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