STM32F407寄存器初学者笔记(1)——GPIO篇——寄存器操作
在 STM32 微控制器中,GPIO(General-Purpose Input/Output,通用输入 / 输出)口的配置和操作主要通过一系列寄存器来实现。这些寄存器可以直接通过代码访问,实现对 GPIO 引脚的方向、输出状态、输入模式、上下拉电阻等参数的精确控制。
一、重要笔记
Input输入:接收外界过来的数据
Output输出:将数据发送到外界
传输数据:TTL电平:数据‘0’,低电平0V;数据‘1’,高电平3.3V
STM32处理数字量数据,无法直接处理模拟量(使用模数转换器将模拟量转成数字量)
GPIO数量决定了什么:外接设备越多(连接片外外设数量更多)
输出4种模式 和 输入4种模式
浮空输入、上拉输入、下拉输入、模拟输入
通用推挽输出、通用开漏输出、复用推挽输出、复用开漏输出
推挽:既可以输出高电平’1’,也可以输出低电平‘0’
开漏:只能输出低电平‘0’,不能输出高电平‘1’
二、框图
输入部分框图:

输出部分框图:

模拟输入:外界过来模拟量,通过ADC进行转换,将模拟量转换数字量,再给CM4进行处理。
复用输入:外界过来数据,通过斯密特触发器后,直接到片上外设的数据寄存器,如CM4需读取外界数据,则需要读取片上外设的数据寄存器。
输入模式:外界过来数据,通过斯密特触发器后,直接暂存到输入数据寄存器,如CM4需读取外界数据,则需要读取输入数据寄存器。
复用功能选择AFx:

三、GPIO相关寄存器
1、GPIO 端口模式寄存器 (GPIOx_MODER)

MODERy[1:0],其中 y = 0~15,对应引脚 0~15
2、GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x = A..I)

位 15:0 OTy[1:0]:端口 x 配置位 (Port x configuration bits) (y = 0..15)
这些位通过软件写入,用于配置 I/O 端口的输出类型。
0:输出推挽(复位状态)
1:输出开漏
3、GPIO 端口输出速度寄存器 (GPIOx_OSPEEDR) (x = A..I/)

位 2y:2y+1 OSPEEDRy[1:0]:端口 x 配置位 (Port x configuration bits) (y = 0..15)
这些位通过软件写入,用于配置 I/O 输出速度。
00:2 MHz(低速)
01:25 MHz(中速)
10:50 MHz(快速)
11:30 pF 时为 100 MHz(高速)(15 pF 时为 80 MHz 输出(最大速度))
4、GPIO 端口上拉/下拉寄存器 (GPIOx_PUPDR) (x = A..I/)

位 2y:2y+1 PUPDRy[1:0]:端口 x 配置位 (Port x configuration bits) (y = 0..15)
这些位通过软件写入,用于配置 I/O 上拉或下拉。
00:无上拉或下拉
01:上拉
10:下拉
11:保留
5、GPIO 端口输入数据寄存器 (GPIOx_IDR) (x = A..I)

位 31:16 保留,必须保持复位值。
位 15:0 IDRy[15:0]:端口输入数据 (Port input data) (y = 0..15)
这些位为只读形式,只能在字模式下访问。它们包含相应 I/O 端口的输入值。
6、GPIO 端口输出数据寄存器 (GPIOx_ODR) (x = A..I)

位 31:16 保留,必须保持复位值。
位 15:0 ODRy[15:0]:端口输出数据 (Port output data) (y = 0..15)
这些位可通过软件读取和写入。
注意:对于原子置位/复位,通过写入 GPIOx_BSRR 寄存器,可分别对 ODR 位进行置位和复
位 (x = A..I/)。
7、GPIO 复用功能低位寄存器 (GPIOx_AFRL) (x = A..I)

位 31:0 AFRLy:端口 x 位 y 的复用功能选择 (Alternate function selection for port x bit y) (y = 0..7)
这些位通过软件写入,用于配置复用功能 I/O。
8、GPIO 复用功能高位寄存器 (GPIOx_AFRH) (x = A..I)

位 31:0 AFRHy:端口 x 位 y 的复用功能选择 (Alternate function selection for port x bit y) (y = 8.0.15)
这些位通过软件写入,用于配置复用功能 I/O。
四、相关代码:



更多推荐


所有评论(0)