STM32 CuberIDE 中断

中断服务函数(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的函数就完成了。

相关推荐
电子小白1236 小时前
第13期PCB layout工程师初级培训-1-EDA软件的通用设置
笔记·嵌入式硬件·学习·pcb·layout
清风6666666 小时前
基于单片机的多传感器智能云梯逃生控制器设计
单片机·嵌入式硬件·毕业设计·智能家居·课程设计
小何code6 小时前
STM32入门教程,第10课(上),OLED显示屏
stm32·单片机·嵌入式硬件
来自晴朗的明天6 小时前
高速画板-USB模块的PCB设计5-USB2.0/3.0布局布线要求
单片机·嵌入式硬件·硬件工程
早日退休!!!9 小时前
ARM Cortex-M核 【保存上下文&恢复上下文】
arm开发·单片机·嵌入式硬件
来自晴朗的明天9 小时前
差分控多少Ω阻抗
单片机·嵌入式硬件·硬件工程
SystickInt10 小时前
mosbus复习总结(20260110)
stm32
点灯小铭10 小时前
基于单片机的多功能智能婴儿车设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
π同学11 小时前
基于RT-Thread的STM32开发第十一讲——编码器模式
stm32·rt_thread·双相编码器
码农小韩13 小时前
基于Linux的C++学习——动态数组容器vector
linux·c语言·开发语言·数据结构·c++·单片机·学习