操作stm32的GPIO的步骤
- 使用RCC开启GPIO时钟
- GPIO_init函数初始化GPIO
- 使用输入输函数控制GPIO口
RCC(复位于时钟控制)外设的库函数
RCC可以控制STM32的所有外设,哪个外设需要工作就给谁发时钟,不干活的外设,关掉时钟省电

GPIO(通用输入输出)外设的库函数
可以读取外部信号,对外输出高低电平
引脚模式(决定引脚内部结构):

输出相关模式
模式 原理 典型用途
推挽输出 内部两个开关交替导通,能主动拉高或拉低电平 驱动LED、普通数字输出
开漏输出 只能主动拉低,不能主动拉高(需要外部上拉电阻) I²C通信、多设备共用总线
输入相关模式
模式 原理 典型用途
浮空输入 引脚悬空,电平不确定(容易受干扰) 一般不用
上拉输入 内部接一个电阻到VCC,默认高电平 按键检测(按下变低)
下拉输入 内部接一个电阻到GND,默认低电平 按键检测(按下变高)
特殊模式(既是输入又是输出)
模式 说明
复用功能 引脚交给内部外设(如USART、SPI、定时器)控制,不再由你手动写高低电平
模拟输入 引脚直连ADC内部,用于测量电压值