配置每组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中已优化。

锁定寄存器不常用到,我在就没有详细了解,今天就写到这里吧!
以上就是常用寄存器配置的讲解!
关键字:STM32 GPIO 寄存器 配置
引用地址:
STM32 GPIO 寄存器的配置
推荐阅读最新更新时间:2026-03-25 10:37
STM32 GPIO操作深度解析:HAL库中的GPIO初始化艺术——不仅仅是配置寄存器的故事
???? 前言 你是不是也曾经天真地以为,控制几个LED灯只需要随便写两行代码?是不是觉得GPIO初始化不过是设置几个寄存器的小把戏?当你的按键检测出现抖动、LED莫名闪烁、通信接口罢工时,你是否怀疑过自己根本没真正理解GPIO?今天,就让我们把STM32的GPIO外衣一层层剥开,看看这个看似简单的功能模块背后藏着多少工程师的智慧结晶! 1. GPIO——被低估的硬件桥梁 GPIO(General Purpose Input/Output)是MCU与外部世界交互的物理接口。在STM32中,每个GPIO引脚都包含7个寄存器控制其行为: 4个32位配置寄存器(MODER, OTYPER, OSPEEDR, PUPDR) 2个3
[单片机]
STM32的GPIO的寄存器配置学习1
本篇文章主要是学习以M3内核的STM32的GPIO的寄存器的配置,为什么要学习寄存器,而不利用库函数呢?我只能说为了让学的知识更加牢固吧!当然,你可以直接去利用库函数,但是如果你能认真读完本篇博客,你会对知识豁然开朗!加油吧! STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:配置模式的 2 个 32 位的端口配置寄存器 CRL 和 CRH;2 个 32 位的数据寄存器 IDR 和 ODR;1 个 32 位的置位/复位寄存器BSRR;一个 16 位的复位寄存器 BRR;1 个 32 位的锁存寄存器 LCKR;这里我们仅介绍常用的几个寄存器,我们常用的 IO 端口寄存器只有 4 个:CRL、CRH、IDR、OD
[单片机]
【STM32】GPIO的相关配置寄存器、库函数、位操作
STM32F1xx官方资料: 《STM32中文参考手册V10》-第8章通用和复用功能IO(GPIO和AFIO) 《Cortex-M3权威指南(中文)》第5章 位带操作 硬件连接 假设跑马灯实验的硬件连接如上图所示,LED0连接PB5,LED1连接PE5。由于在LED的另一端是VCC3.3,所以当PB5或PE5为低电平的时候,LED灯会亮。此时GPIO应采取推挽输出的模式。 GPIO的相关配置寄存器 STM32的每组GPIO口包括7个寄存器。也就是说,每个寄存器可以控制一组GPIO的16个GPIO口。这7个寄存器分别为: GPIOx_CRL:端口配置低寄存器(32位) GPIOx_CRH:端口配置高寄存器(32
[单片机]
STM32F103 GPIO寄存器配置
每个GPI/O端口有 两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH) 两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR) 一个32位置位/复位寄存器(GPIOx_BSRR) 一个16位复位寄存器(GPIOx_BRR) 一个32位锁定寄存器(GPIOx_LCKR) 函数介绍 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 功能: 根据 GPIO_InitStruct 中指定的参数初始化外设GPIOx寄存器 参数: GPIOx:x可以是A,B,C,D或者E,来选择GPIO外设 GPIO_InitStru
[单片机]
明解STM32—GPIO理论基础知识篇之寄存器原理
一、前言 在之前的STM32的GPIO理论基础知识中,分别对基本结构和工作模式进行了详细的介绍。GPIO基本结构中主要对GPIO内部的各个功能电路逐一的进行的分析;GPIO工作模式中主要介绍GPIO应用在不同的使用场景下,GPIO端口的静态特征配置和动态的工作模式,同时对信号的工作流进行了分析。 这一篇主要对GPIO模块使用到的寄存器进行详细的分析介绍,适当了解GPIO寄存器的相关知识,可以对GPIO最底层的一些配置和工作原理有更好的认识,有助于加深对GPIO基本结构及工作模式的理解,同时对后续介绍到的GPIO在应用设计中有较好的帮助。 二、寄存器概述 图1为STM32的GPIO模块中寄存器的概述,总共有
[单片机]
STM32 GPIO寄存器的相关知识
一、前言 在之前的STM32的GPIO理论基础知识中,分别对基本结构和工作模式进行了详细的介绍。 GPIO基本结构中主要对GPIO内部的各个功能电路逐一的进行的分析; GPIO工作模式中主要介绍GPIO应用在不同的使用场景下,GPIO端口的静态特征配置和动态的工作模式,同时对信号的工作流进行了分析。 这一篇主要对GPIO模块使用到的寄存器进行详细的分析介绍,适当了解GPIO寄存器的相关知识,可以对GPIO最底层的一些配置和工作原理有更好的认识,有助于加深对GPIO基本结构及工作模式的理解,同时对后续介绍到的GPIO在应用设计中有较好的帮助。 二、寄存器概述 图1为STM32的GPIO模块中寄存器的概述,总共有5种类型的寄存
[单片机]
STM32个人学习笔记-第二集(F4GPIO寄存器介绍)
一,GPIO口寄存器 GPIO有九组IO口,分别用大写字母表示,即,x=A/B/C/D/E/F/G/H/I. IO口可以由软件配置成如下8种模式 1,输入浮空 2,输入上拉 3,输入下拉 4,模拟输入 5,开漏输出 6,推挽输出 7,推挽式复用功能 8,开漏式复用功能 二,IO口常用的8个寄存器 1,MODER寄存器 该寄存器是GPIO端口模式控制寄存器,用于控制IO口的工作模式 每组IO下有16个IO口,该寄存器共32位,每2个位控制1个IO,不同设置所对应的模式见上表 2,OTYPER寄存器 这个寄存器用于控制GPIO的输出类型,低16位有效,每一个位控制一个IO口,复位后该寄存器值都是0 3,OS
[单片机]
STM32的GPIO内部结构及相关寄存器
学完大二上学期51单片机课程的寒假,在家我就开始捣鼓STM32了,记得那时候接触STM32感觉它很难,20多天下来就学习了RCC时钟体系和GPIO控制模块,开学后又开始忙一些有的没的,STM32的学习也搁置了,以至于后来跟学校当时在念博的老师交流时,我是这样描述我的STM32开发水平的:“我只会用GPIO写流水灯程序”,说来汗颜。 最近一阵子又回归STM32学习之旅,对于GPIO模块其实很不想写文章,感觉在炒冷饭,不过,认真考虑后还是敲起了键盘,对于概念性的东西还是做一下笔记吧,编程方面的,挺简单,相关资料很多,就不记录了。 1. GPIO简介 GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引
[单片机]