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的函数就完成了。

相关推荐
猫猫的小茶馆10 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
feifeigo12310 小时前
STM32矩阵键盘驱动(库函数版)实现
stm32·矩阵·计算机外设
嵌入式小站11 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
czhaii11 小时前
跟我动手学FX系列PLC GX2环境
嵌入式硬件
拾知_H12 小时前
STM32/Delay延时函数编程思路
stm32·单片机·时钟·延时
2zcode13 小时前
基于STM32的智能扫地机器人设计与实现
stm32·嵌入式硬件·机器人
jllllyuz14 小时前
单相并网逆变器控制代码实现(STM32版)
stm32·单片机·嵌入式硬件
冉卓电子15 小时前
GD32C103RBT6 misc 内核驱动库极简解析
单片机·嵌入式硬件
yongui4783415 小时前
MAX6675 K型热电偶温度采集程序(Keil环境)
单片机·嵌入式硬件
豆包公子15 小时前
AUTOSAR CP XCP 移植到裸机 MCU-实践篇
单片机·嵌入式硬件