OpenEdv-开源电子网

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

求教IO方向设置的问题#define DHT11_IO_IN() {GPIOC->CRL&=0XFFFFFFF0;GPIOC->CRL|=8<<0;}

[复制链接]

23

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
178
金钱
178
注册时间
2015-12-9
在线时间
57 小时
发表于 2016-9-13 11:00:39 | 显示全部楼层 |阅读模式
2金钱
谁能讲讲这里是什么意思,为什么改了io就用不了,0XFFFFFFF0还有8<<0,都是什么意思,求具体讲一下
3.png

最佳答案

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

CRL表示的是0·7io CRH表示的就是8~15 IO 口;0xffffffff就分别对应0~7(8~15) 设置成8和3,是根据寄存器的要求设值的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

387

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1043
金钱
1043
注册时间
2016-9-8
在线时间
213 小时
发表于 2016-9-13 11:00:40 | 显示全部楼层
CRL表示的是0·7io CRH表示的就是8~15 IO 口;0xffffffff就分别对应0~7(8~15) 设置成8和3,是根据寄存器的要求设值的
shop60994719.taobao.com
回复

使用道具 举报

3

主题

794

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
1502
金钱
1502
注册时间
2015-3-3
在线时间
460 小时
发表于 2016-9-13 11:19:56 | 显示全部楼层
可以看下寄存器版本的GPIO初始化代码
回复

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2015-3-30
在线时间
17 小时
发表于 2016-10-31 10:22:55 | 显示全部楼层
前面的我明白是什么意思。但是后面的GPIOC->CRL|=8<<0;和GPIOC->CRL|=3<<0;中的左移0是什么意思我就不知道了。
上面的8代表的是1000。表示浮空输入模式。
上面的3代表的是0011。表示推挽输出模式。
但是就是左移0不知道是啥意思。哪位师傅能帮我解答下呢。谢谢。
例如我把PC5设置成DS18B20的IO口
#define DS18B20_IO_IN()  {GPIOC->CRL&=0XFF0FFFFF;GPIOC->CRL|=8<<0;}
#define DS18B20_IO_OUT() {GPIOC->CRL&=0XFF0FFFFF;GPIOC->CRL|=3<<0;}
上面这两个是我自己改动的。前面一部分肯定是没有什么问题。但是左移0肯定是不对的。对于左移几,是怎么计算的呢。求解答。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-10-31
在线时间
1 小时
发表于 2016-10-31 16:28:10 | 显示全部楼层
曹世鹏 发表于 2016-10-31 10:22
前面的我明白是什么意思。但是后面的GPIOC->CRL|=8

设置第几个引脚就左移几;
前面部分GPIOC->CRL&=0XFF0FFFFF; 说明设置的是GPIO_Pin_5;
后面部分GPIOC->CRL|=8<<20;  应该左移pin_5*4=20位  
回复

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2015-3-30
在线时间
17 小时
发表于 2016-11-1 16:42:26 | 显示全部楼层
sherryPn 发表于 2016-10-31 16:28
设置第几个引脚就左移几;
前面部分GPIOC->CRL&=0XFF0FFFFF; 说明设置的是GPIO_Pin_5;
后面部分GPIOC-> ...

嗯嗯,非常感谢你的帮助。这个问题昨天问了下原子哥,解决了。再次感谢。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-10-31
在线时间
1 小时
发表于 2016-11-2 09:51:43 | 显示全部楼层
曹世鹏 发表于 2016-11-1 16:42
嗯嗯,非常感谢你的帮助。这个问题昨天问了下原子哥,解决了。再次感谢。

嗷嗷 没事儿
回复

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-3-31
在线时间
23 小时
发表于 2016-12-9 11:32:08 | 显示全部楼层
sherryPn 发表于 2016-10-31 16:28
设置第几个引脚就左移几;
前面部分GPIOC->CRL&=0XFF0FFFFF; 说明设置的是GPIO_Pin_5;
后面部分GPIOC-> ...

非常感谢原子哥,我也看懂了,谢谢。验证也通过了
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-11-13
在线时间
6 小时
发表于 2020-12-13 10:58:35 | 显示全部楼层
兄弟,那个dht11的io口方向你是怎么解决的,求教。我想改成另外一个io口怎么改啊,如GPIOG11
回复

使用道具 举报

16

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2015-12-3
在线时间
54 小时
发表于 2020-12-15 10:19:51 | 显示全部楼层
十三sl 发表于 2020-12-13 10:58
兄弟,那个dht11的io口方向你是怎么解决的,求教。我想改成另外一个io口怎么改啊,如GPIOG11

根据寄存器的值来改,你可以看看datasheet
回复

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2021-7-20
在线时间
12 小时
发表于 2021-11-30 11:03:57 | 显示全部楼层
《STM32F1模拟I2C通信中寄存器操作IO方向详解》 https://blog.csdn.net/wyh68866/a ... Id=usr1mkqgl919blen。这个博客写的很详细,可以去看一下,每个位操作的意思
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2020-12-31
在线时间
12 小时
发表于 2022-4-29 13:27:29 | 显示全部楼层
这种方式时钟不用开了么
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 08:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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