STM32的GPIO的七个寄存器的配置说明

STM32的GPIO的七个寄存器的配置说明

每组GPIO口都配置有七个寄存器,

  1. 端口配置低寄存器GPIOx_CRL
  2. 端口配置高寄存器(GPIOx_CRH)
  3. 端口输入数据寄存器(GPIOx_IDR)
  4. 端口输出数据寄存器(GPIOx_ODR)
  5. 端口位设置/ 清除寄存器(GPIOx_BSRR)
  6. 端口位清除寄存器(GPIOx_BRR)
  7. 端口配置锁定寄存器(GPIOx_LCKR)

首先看看为什么端口配置需要两个寄存器CRL和CRH,因为STM32是32位的,由于配置每个I/O口需要四位(详见中文数据手册)如下图在这里插入图片描述
一组有16个I/O口,一共需要164=64位,所以需要两个寄存器322=64才满足要求。

CRL端口配置低寄存器控制是0-7位,CRH端口高寄存器控制的是8-15位.
其中一个控制一个I/O口需要四位,其中低两位控制的是速度Speed,高两位控制的是输入输出模式Mode,详见中文数据手册P113
在这里插入图片描述
IDR:端口输入数据寄存器
32个I/O只需要用到IDR的前16位(0-15)

ODR输出数据寄存器和IDR相反,也是只用到前16位,例如ODR的第一位设置为0则代表P0口输出低电平,
ODR的第2位设置为1则代表P2口输出高电平.

BSRR:端口位设置/ 清除寄存器(GPIOx_BSRR),该寄存器其实是间接控制ODR寄存器

GPIOx->BSRR = GPIO_Pin; //端口位设置或清除
注:GPIO_Pin为(0…15)中任意接口
有了GPIOx->BRR清除寄存器,并且与GPIOx->BSRR高16为功能相同

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值