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中已优化。
在这里插入图片描述
锁定寄存器不常用到,我在就没有详细了解,今天就写到这里吧!
以上就是常用寄存器配置的讲解!

猜你喜欢

转载自blog.csdn.net/qq_45396672/article/details/102800870