1. EXTI 按钮中断实验:从硬件连接到中断服务函数的完整工程实现
在嵌入式系统开发中,外部中断(External Interrupt, EXTI)是响应物理世界事件最基础、最高效的机制之一。它绕过轮询带来的 CPU 资源浪费与响应延迟,使 MCU 能在毫秒甚至微秒级时间内对按键、传感器触发、通信信号边沿等外部事件做出反应。本实验以 STM32F103C8T6(Cortex-M3 内核)最小系统板为平台,通过两个独立按键分别控制板载 LED 的点亮与熄灭,完整呈现 EXTI 模块从硬件电路设计、GPIO 与复用器配置、EXTI 线参数设定、NVIC 中断控制器初始化,到中断服务函数(ISR)编写与标志位管理的全链路工程实践。所有操作均基于标准外设库(Standard Peripheral Library),其底层逻辑与 HAL 库及裸机编程完全一致,理解此流程即掌握了 STM32 中断驱动外设的核心范式。
1.1 硬件电路设计与物理连接
本实验的硬件目标明确:左侧按键(KEY_LEFT)按下并释放后,板载 LED(LD2)点亮;右侧按键(KEY_RIGHT)按下并释放后,LD2 熄灭。该行为本质上是对按键“松开”瞬间(即输入信号由低电平跳变至高电平)的上升沿检测。因此,电路设计必须确保按键未按下时,MCU 输入引脚处于确定的高电平状态;按下时,引脚被可靠拉低。这直接决定了 GPIO 的初始化模式选择。
电路拓扑如下:
-板载 LED(LD2):连接于 MCU 的PC13引脚。采用共阳极(Anode-Cathode, AKO)接法,即 LED 阳极接 VDD(3.3V),阴极通过限流电阻(通常为