一、整体模块概述
1. 模块功能
该文件实现 GPIO 所有底层驱动,分为两大类接口:
- 初始化 / 反初始化:引脚模式、上下拉、速度、复用功能、外部中断配置
- IO 读写操作:引脚读电平、写电平、翻转电平、配置锁定、外部中断入口
2. 硬件特性
- 复位后所有 GPIO 默认浮空输入(JTAG 引脚除外)
- 每个引脚可配置:输入 / 模拟 / 推挽 / 开漏 / 复用功能 / 外部中断
- 所有引脚自带独立上拉 / 下拉电阻
- 外部中断 EXTI0~EXTI15 对应全部 GPIO 引脚,支持上升沿 / 下降沿 / 双边沿触发
- 晶振引脚(HSE/LSE)优先级高于 GPIO 功能
二、宏与基础定义
#define GPIO_NUMBER 16U
单 GPIO 端口固定16 个引脚(Pin0~Pin15),所有循环遍历都基于该宏。
三、核心函数逐段解析
1.HAL_GPIO_Init引脚初始化(最核心函数)
函数作用
根据GPIO_InitTypeDef结构体,逐引脚配置模式、速度、上下拉、复用功能、外部中断。
关键代码逻辑拆解
1.参数校验
assert_param(IS_GPIO_ALL_INSTANCE(GPIOx));
assert_param(IS_GPIO_PIN(GPIO_Init->Pin));
<