GPIO寄存器详解与点亮LED
GPIO简介
全称: general purpose input output,通用I/O口 \text{general purpose input output,通用I/O口} general purpose input output,通用I/O口
GPIO和引脚的区别:

不是所有的I/O口都可以由程序控制,GPIO可以用程序控制
如何查找每一个GPIO引脚功能:
可以通过查询官方数据手册:官方数据手册指路

GPIO框图详解

对于输出操作

端口上拉/下拉寄存器 (GPIOx_PUPDR)
对应参考手册
7.4.4 GPIO port pull-up/pull-down register
用途:
配置 I/O 上拉或下拉。
00:无上拉或下拉
01:上拉
10:下拉
11:保留
上拉电阻:将一个不确定的信号(高或低电平),通过一个电阻与电源 V C C \text{V}_{CC} VCC相连,固定在高电平。
下拉电阻:将一个不确定的信号(高或低电平),通过一个电阻与地 GND \text{GND} GND相连,固定在低电平。

端口输出数据寄存器 (GPIOx_ODR)
对应参考手册
7.4.6 GPIO port output data register
用途:
控制输出电平0/1

端口置位/复位寄存器 (GPIOx_BSRR)
对应参考手册
7.4.7 GPIO port bit set/reset register
用途:
可以控制输出0/1
"1"有效写入:
输入1,set置1,reset置0;(BS优先级高于BR)
输入0,无任何影响

端口模式寄存器 (GPIOx_MODER)
对应参考手册
7.4.1 GPIO port mode register
用途:
用于配置 I/O 方向模式
00:输入(复位状态):即写入状态
01:通用输出模式
10:复用功能模式
11:模拟模式

端口输出类型寄存器 (GPIOx_OTYPER)
对应参考手册
7.4.2 GPIO port output type register
用途:
用于配置 I/O 端口的输出类型。
0:输出推挽(复位状态)
1:输出开漏