中断服务函数(Interrupt Service Routine, ISR)是嵌入式系统和操作系统中用于响应硬件或软件中断的特殊函数。当特定事件(如外部信号、定时器溢出、数据接收完成等)触发中断时,处理器暂停当前任务,跳转到对应的ISR执行处理逻辑,完成后恢复原任务。
1.中断服务函数的示例
实现LED_RED延时亮灭,LED_GREEN 按下KEY1按键实现亮灭


运行以上代码后发现LED_RED延时亮灭可以实现,而LED_GREEN 按下KEY1按键实现亮灭无法实现。是因为在while循环中每次执行if条件时会先进行HAL_Delay();延时,之后在进行if判断。这使得按键控制需要按下4秒后抬起才会判断执行亮灭。
为了按下KEY1马上实现 LED_GREEN亮灭又不改变HAL_Delay();延时功能就需要用到中断
在BP12口 GPIO GPIO mode 下选择下降沿触发

并且在BP12口 GPIO NVIC 设置中断优先级


打开Core文件 找到Src下的stm32f1xx_it.c 在void EXTI15_10_IRQHandler(void)函数里写入命令

至此通过外部中断实现按键控制LED的函数就完成了。