一、中断初始化配置
1.打开 STM32CubeMX 软件,在工具栏中选择 "Pinout & Configuration" 选项卡。
2.选择需要使用的 GPIO 引脚,右键单击选择 "GPIO_EXTI"。在弹出的上下文菜单中选择 "External Interrupt Mode",并选择相应的中断触发方式。
3.在配置选项卡中,在 "Mode" 选项中选择外部中断模式。在 "External Interrupt" 选项中选择对应的 "EXTIx" 中断线。
4.配置 NVIC (Nested Vectored Interrupt Controller),使能中断线,并设置中断优先级。
二、STM32CubeMX配置
1.打开高速和低速时钟,时钟源选择外部时钟源
将定时器的时钟设为 72M
2.引脚配置
用PB6作为中断输入,配置为GPIO_EXTI,由于PB6引脚通过按键直接接地,所以将引脚拉高也就是Pull-up ,检测他的下降沿,作为中断源输入,PC13设置为GPIO_Output,输出高电平
接着GPIO mode配置下降沿,pull-up 上拉
GPIO mode:
External Interrupt Mode with Rising edge trigger detection//上升沿触发
External Interrupt Mode with Falling edge trigger detection//下降沿触发
External Interrupt Mode with Rising/Falling edge trigger detection//上升沿或下降沿触发
pc13配置高电平
3. 使能外部中断线
4.配置中断优先级
5.生成代码
三、Keil代码配置
1.重写中断回调函数
在 main.c 中的 USER CODE BEGIN 0-4 编程范围内重写外部中断的回调函数:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == GPIO_PIN_6) { HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13); } }