STM32 GPIO 寄存器的配置

了解了GPIO口的工作原理,我们下一步的操作就是如何去配置GPIO,今天我将分享一下我对GPIO配置的了解(参考资料:正点原子开发手册)

配置每组IO口的寄存器:(每一组一套寄存器)

1、两个32位的配置寄存器;GPIOx_CRL,GPIOx_CRH
2、两个32位的数据寄存器:GPIOx_IDR,GPIOx_ODR
3、一个32位置位/复位寄存器:GPIOx_BSRR
4、一个16位的复位寄存器GPIOx_BRR
5、一个32位的锁定寄存器GPIOx_LCKR

详解 :

CRL和CRH控制IO口,是四个位控制一个口,所以要两个32位的来控制16个口

1、GPIOx_CRL:端口配置低寄存器:

每个口由四位控制,为MODE+CNF联合配置,具体模式在下图中。(输入要与输入对应,输出也要与输出对应)
在这里插入图片描述
具体对应输入输出配置表(对上图的详解):
在这里插入图片描述

2、GPIOx_CRH:端口配置高寄存器(与低配置寄存器一样,这里把配置图放这,供大家参考)

在这里插入图片描述

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

32位寄存器其中16-31位一直保留,始终为0;0-15位则对应着16个IO口,1为高电平,0为低电平。
在这里插入图片描述

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

与数据输入的配置差不多,但是ODR在输入模式下可以控制上升沿和下降沿的配置!(前面也提到)
在这里插入图片描述
在这里插入图片描述

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

BSRR比之上面的寄存器有些复杂,但也不是很难,32位分两个16位高和低,共同控制ODR数据输出寄存器的每一位输出;具体的控制方式在下图中。高低位0不产生影响,高位置1则对应ODR位为0.低位置1则对应ODR为1;高低位同事作用时,则只有低16位起作用!
在这里插入图片描述

6、GPIOx_BRR:端口位清除寄存器:

该寄存器与上面BSRR高16位作用相同,F1中有些赘余,但F4中已优化。
在这里插入图片描述
锁定寄存器不常用到,我在就没有详细了解,今天就写到这里吧!
以上就是常用寄存器配置的讲解!

  • 8
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Top嵌入式

投喂个鸡腿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值