GPIO寄存器

GPIO寄存器

1、端口配置低寄存器(GPIOx_CRL)

32位寄存器,控制对应端口的0~7引脚,每4位对应一个引脚
4位中CNF控制端口模式,MODE控制输入输出及传输速率

寄存器:
在这里插入图片描述

端口配置如下:
在这里插入图片描述

2、端口配置高寄存器(GPIOx_CRH)

同GPIO端口配置低寄存器

3、端口输入数据寄存器(GPIOx_IDR)

高16位保留为0,低16位对应16个引脚
这些位为只读并只能以字(16位)的形式读出。读出的值为对应I/O口的状态。

在这里插入图片描述

4、端口输出数据寄存器(GPIOx_ODR)

高16位保留为0,低16位对应16个引脚
这些位可读可写并只能以字(16位)的形式操作。
注:对GPIOx_BSRR(x = A…E),可以分别地对各个ODR位进行独立的设置/清除。

在这里插入图片描述

5、端口位设置/清除寄存器(GPIOx_BSRR)

BRy: bit reset
这些位只能写入并只能以字(16位)的形式操作。
0:对对应的ODRy位不产生影响
1:清除对应的ODRy位为0

BSy: bit set
这些位只能写入并只能以字(16位)的形式操作。
0:对对应的ODRy位不产生影响
1:设置对应的ODRy位为1

注:如果同时设置了BSy和BRy的对应位,BSy位起作用。

寄存器:

在这里插入图片描述

6、端口位清除寄存器(GPIOx_BRR)

高16位保留,低16位使用
置0:对对应的ODRy位不产生影响
置1:设置对应的ODRy位为0

在这里插入图片描述

注:端口位清除寄存器的存在相当于代替了端口位设置/清除寄存器的高16位,可以看成BSRR寄存器的低16位用于设置端口位,BRR的低16位用于清楚端口位

7、端口配置锁定寄存器(GPIOx_LCKR)

低16位用于控制0~15的引脚,置1锁存相应端口,位16为锁键。

GPIO端口配置低寄存器
在这里插入图片描述
在这里插入图片描述
注:

	//开锁程序:(GPIOB为例)
	uint32_t t;
	GPIOB->LCKR|=0x00010000;//LCKK写入1
    GPIOB->LCKR&=0x0000ffff;//LCKK写入0
	GPIOB->LCKR|=0x00010000;//LCKK写入1
	t=GPIOB->LCKR;//LCKK读0
	t=GPIOB->LCKR;//LCKK读出1
	//开启锁定寄存器模式
	GPIOB->LCKR&=0x0000ffff;//LCKK写入0
	GPIOB->LCKR=1<<5;//锁定PB5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值