寄存器配置GPIOx输入输出模式

最近程序中使用到了—用寄存器配置GPIOx的输入输出模式,简单记录一下,方便今后自己参考。

// An highlighted block
//IO方向设置
#define DHT11_1_IO_IN()  {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|= 8<<12;}
#define DHT11_1_IO_OUT() {GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=3<<12;}
IO操作函数											   
#define	DHT11_1_DQ_OUT PAout(11) //数据端口	PA11 
#define	DHT11_1_DQ_IN  PAin(11)  //数据端口	PA11

解释:

1. CRH、CRL分别是32位端口配置高、低寄存器,每4位控制一个IO口。

2. 一个GPIOx有0-15个IO口,所以CRL用来配置GPIOx_0-----GPIOx_7,CRLH用来配置GPIOx_8-----GPIOx_15

3. 以上面的为例,如果想配置GPIOA_11为上拉输入模式,则:

i) GPIOA->CRH&=0XFFFF0FFF 将GPIOA_11先清零,其他IO保持不变,然后设置为上拉输入模式,

ii) GPIOA->CRH|= 8<<12 即GPIOA->CRH|= 0X00008000,或上“8:1000”的含义:
①第12、13位是00 ,为输入模式
②第14、15位是10,为上拉输入

在这里插入图片描述
4. GPIOA->CRH&=0XFFFF0FFF;GPIOA->CRH|=3<<12;

0x0011:先配置为输出模式,然后设置为通用推挽输出。

在这里插入图片描述

假如我年少有为,我岂甘心放下你的手。。。望下次遇到时,我们各自功成名就。fight!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值