【STM32】HAL库——按键外部中断

HAL库学习——GPIO输入作为外部中断触发 一、介绍 通过GPIO输入电平变化,可直接触发外部中断,一般应用于按键检测以及其它脉冲检测。下面讲述外部中断的配置及使用。 二、CubeMx配置 1)配置GPIO为外部中断模式 2)配置为上升沿触发外部中断模式。这里根据实际情况配置,博主是根据项目需要配置为捕捉上升沿。 2)开启外部中断 三、代码实现 MCU一检测到外部IO有上升沿产生,则会调用外部中断函数,该代码是由CubeMx配置自动生成。 中断函数里主要完成外部中断标志... 阅读详情
AI摘要

本文介绍了如何使用STM32CubeMX配置STM32F103C4的时钟和IO口,设置GPIO和EXTI中断,然后在MDK-ARM中编写中断服务函数和回调函数,通过Proteus8搭建电路并进行LED灯操作。通过实例演示了如何在实际项目中处理按键输入和点亮熄灭LED的功能。

前期准备:

  1. STM32CubeMX
  2. Proteus 8
  3. IDE Keil(MDK-ARM)

STM32CubeMX部分



1. 配置时钟

依旧是选择STM32F103C4系列芯片,选择高速外部时钟,配置晶振。
在这里插入图片描述

将HCLK设置为最大频率72MHz
在这里插入图片描述

2. 选择IO口

在这里插入图片描述
PA1、PA2选择GPIO_Output模式,用作点灯
PA3、PA4选择GPIO_EXTI模式,用作外部中断

3. 引脚模式设置

在这里插入图片描述

GPIO:

level:高电平
mode:推挽输出
是否上下拉:不上下拉
引脚速度:中

关于Output模式的配置上一章内容有,这里就不再详细操作了。

EXTI:

在这里插入图片描述
mode:下降沿触发
是否上下拉:不上下拉

4. 中断优先级管理设置

在这里插入图片描述
将line3和line4中断使能勾选

5. 工程管理设置

在这里插入图片描述

在这里插入图片描述
依旧是我推荐的几个选项,然后GENERATE CODE,STM32CubeMX部分完成。


MDK 5部分

在这里插入图片描述
打开工程,发现HAL_GPIO_EXTI_IRQHandler(中断服务函数) 在stm32f1xx_it.c文件下
在这里插入图片描述
接着右键HAL_GPIO_EXTI_IRQHandler(中断服务函数),点击Go To Definition Of " "进入此函数
在这里插入图片描述

此函数的作用是清除中断标志位,之后进入HAL_GPIO_EXTI_Callback(中断回调函数)

中断运行结束后不会立马退出,而是进入HAL_GPIO_EXTI_Callback(中断回调函数),处理完中断回调函数的事件后,再退出中断,所以我们一般都是将需要响应的事件代码写入中断回调函数中

继续进入HAL_GPIO_EXTI_Callback(中断回调函数)
在这里插入图片描述

在HAL_GPIO_EXTI_Callback(中断回调函数) 中写入响应程序:KEY1按下,LED1和LED2发光
KEY2按下,LED1和LED2熄灭

Proteus 8 部分



如图搭建电路
在这里插入图片描述

将.HEX文件放入单片机,最后点击左下角的仿真即可看到效果
在这里插入图片描述

QQ录屏20210617163004

本期工程文档——>Gitee





在这里插入图片描述

STM32F103 HAL库外部中断(三) 外部中断1、外部中断配置1.1、初始化中断I/O,设置触发条件1.2、配置中断优先级(NVIC),并使能中断。1.3、编写中断服务函数。1.4、编写中断处理回调函数 HAL_GPIO_EXTI_Callback HAL库基本使用系列的 全部博客是我重新学习HAL库的学习记录,仅作为学习记录。其中使用了正点原子Mini开发板和正点原子HAL库Demo,详细的资料请观看正点原子官网   本来计划写一下串口的使用,但是前面的博客里面已经介绍到了串口的文件夹以及串口的初始化以及基本使用,最多就是在加一个中断处理 阅读详情

相关推荐

外部中断GPIO引发

这个函数的设计初衷是让用户可以在不修改库代码的情况下,自定义中断处理逻辑。不过,关于能否将它直接复制到。函数内部定义的局部函数无法被HAL库调用(中断发生时,HAL库会在全局作用域查找。内部定义同名函数,会导致编译错误(重复定义)或链接错误(弱符号无法被正确覆盖)。是一个用于处理GPIO外部中断的。修饰),位于HAL库源码中(通常在。函数外部)重新定义这个函数。在STM32 HAL库中,(硬件触发)中执行的,而。

weixin_44149091的博客 1179

【STM32】HAL库 STM32CubeMX教程三----外部中断(HAL库GPIO讲解)

前言 上一节我们讲解了STM32CubeMX的基本使用和工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了 今天我们会详细的带你学习STM32CubeMX配置外部中断,并且讲解HAL库的GPIO的各种函数,带你学习不一样的STM32 如果还没有配置过工程,请参看上一篇博客《STM32CubeMX教程二--基本使用(新建工程点亮LED灯)》 那么话不多说,我们开...

Z小旋 23万+

STM32按键外部中断控制LED流水灯-HAL库

基于HAL库STM32按键外部中断控制

LiuYaLiu2的博客 7321

STM32CUBEIDE(14)----外部中断EXTI

外部中断和事件控制器 (EXTI) 管理外部和内部异步事件 / 中断,并生成相应的事件请求到CPU/ 中断控制器和到电源管理的唤醒请求。本例程主要讲解如何使用外部中断触发LED。

xh1479的博客 5万+

【STM32HAL库】外部中断实战:从按键响应到事件驱动设计

本文详细介绍了STM32HAL库外部中断的实战应用,从按键响应到事件驱动设计。通过HAL库的高效配置和中断服务函数解析,帮助开发者快速实现低功耗、高响应的嵌入式系统设计。文章还涵盖了常见问题排查和性能优化技巧,特别适合STM32开发者提升项目效率。

weixin_27869497的博客 405

用STM32CubeMX+HAL库5分钟搞定STM32F407外部中断按键控制LED

本文详细介绍了如何使用STM32CubeMX和HAL库在5分钟内快速实现STM32F407探索者开发板的外部中断按键控制LED功能。通过图形化配置和自动代码生成,大幅提升开发效率,特别适合嵌入式开发者快速验证硬件功能。

weixin_30298497的博客 457

【STM32HAL库实战】外部中断:从原理到按键响应

本文深入解析了STM32外部中断的工作原理与HAL库实战应用。通过对比轮询机制的不足,阐述了中断在实现及时响应中的核心价值。文章详细介绍了中断系统的两大关键组件NVIC与EXTI,并以CubeMX配置按键中断为例,提供了从工程生成、引脚配置到编写中断回调函数及消抖处理的完整步骤,帮助开发者快速掌握STM32外部中断的配置与调试技巧。

weixin_29189363的博客 626

嵌入式STM32进阶——基于STM32CubeMX HAL库与外部中断的按键控制流水灯

本文详细介绍了基于STM32CubeMX HAL库与外部中断的按键控制流水灯实现方法。从硬件准备、开发环境搭建到CubeMX工程配置,重点讲解了按键消抖的三种方案、多模式流水灯状态机实现以及中断优先级处理技巧。通过STM32F103C8T6开发板实战演示,帮助开发者掌握HAL库中断编程与LED控制的核心技术。

weixin_29184075的博客 105

hal库开启中断关中断_STM32 HAL库学习系列第9篇---NVIC按键外部中断函数

原文首发于同名微信公号「Allen5G」,欢迎大家搜索关注!**针对HAL库的中断操作,使用按键实例进行说下,以供参考---------------------------**void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)//回调函数{ if(GPIO_Pin==KEY1_GPIO_PIN) { HAL_Delay(20);// 延时一小段时间,消除抖...

weixin_30660643的博客 821

STM32外部中断按键检测:从CubeMX配置到HAL库实战与消抖方案

在嵌入式系统开发中,GPIO输入检测是基础且关键的技术。轮询方式虽然简单,但会持续占用CPU资源,降低系统效率。中断机制则提供了一种事件驱动的响应模式,当特定电平跳变发生时,CPU暂停当前任务,转而执行预设的中断服务程序,处理完毕后再返回,极大提升了CPU利用率和系统实时性。这一原理在STM32等微控制器中通过外部中断(EXTI)模块实现,结合嵌套向量中断控制器(NVIC)管理优先级,构成了高效的事件响应体系。其技术价值在于实现快速、低功耗的异步事件处理,广泛应用于按键输入、传感器信号捕获等场景。本文聚焦于

weixin_29194693的博客 268

STM32CubeMX配置EXTI外部中断,从HAL库回调函数到按键消抖的完整实战

本文详细介绍了如何使用STM32CubeMX配置EXTI外部中断,从HAL库回调函数到按键消抖的完整实战指南。通过图形化配置步骤、中断处理机制解析以及高级消抖技术对比,帮助开发者实现稳健的按键中断处理。文章还涵盖了中断优先级配置、共享资源保护技术以及性能优化与调试技巧,适用于STM32开发中的外部中断应用场景。

weixin_33749131的博客 672

STM32 HAL库 CubeMX教程(四)按键外部中断

STM32 HAL库 CubeMX教程(四)外部中断实验内容NVIC(嵌套向量中断控制器)外部中断简介CubeMX配置中断回调函数编写 实验内容 利用按键控制LED的亮灭? 实现方法: 按键扫描 外部中断 第二种方法较为常用,思路:按键按下会产生一个上升沿或者下降沿的触发脉冲,利用单片机的IO口检测输入脉冲,触发外部中断,控制LED动作。 NVIC(嵌套向量中断控制器) NVIC 是嵌套...

带火星的小木条的博客 1万+

用STM32CubeMX+HAL库5分钟搞定STM32F407外部中断(附按键控制LED完整代码)

本文详细介绍了如何使用STM32CubeMX和HAL库快速配置STM32F407探索者开发板的外部中断功能,包括GPIO设置、NVIC优先级管理以及中断回调函数的实现。通过实战示例展示按键控制LED的完整代码,帮助开发者高效完成外部中断开发,提升嵌入式系统开发效率。

weixin_30915275的博客 387

STM32 EXTI外部中断配置详解:按键触发与HAL库实战

外部中断(EXTI)是嵌入式系统响应异步事件的基础机制,其本质是将GPIO引脚的电平跳变(上升沿/下降沿)转换为CPU可响应的中断请求。原理上依赖GPIO、SYSCFG映射寄存器与NVIC协同工作,涉及时钟使能、引脚复用、中断线绑定及优先级管理等关键环节。技术价值在于保障实时性与可靠性,广泛应用于按键检测、传感器唤醒、安全急停等场景。本文聚焦STM32平台,结合CubeMX图形化配置与HAL库底层机制,深入解析PA0与PC13双按键中断的工程实现,涵盖电气匹配、EXTI线映射、NVIC优先级规划及软件去抖等

weixin_35750953的博客 77

用STM32CubeMX和HAL库玩转外部中断:一个按键控制多个LED的三种实现方案(附代码)

本文详细介绍了使用STM32CubeMX和HAL库实现单个按键控制多个LED的三种高级方案,包括状态机设计、长短按识别和多中断线配置。通过STM32F103C8T6开发板实战演示,提供完整代码示例和工程优化建议,帮助开发者掌握外部中断的高级应用技巧。

weixin_30458043的博客 405

STM32 HAL库外部中断按键消抖与LED控制实战

外部中断是嵌入式系统中实现低功耗、高响应人机交互的核心机制,其本质是通过硬件边沿触发唤醒CPU,避免轮询带来的资源浪费。原理上需协同配置GPIO输入模式、EXTI线路映射、NVIC中断优先级及中断服务函数(ISR)的快进快出逻辑。技术价值体现在实时性保障与系统能效平衡,广泛应用于智能硬件按键响应、传感器事件捕获等场景。本文基于STM32F103平台,聚焦HAL库框架下的下降沿触发配置、volatile标记传递、基于HAL_GetTick()的时间戳消抖算法,以及LED控制逻辑解耦设计,覆盖从电气特性分析到量

weixin_42103128的博客 301

STM32的外部中断实现按键控制led灯亮灭(HAL库)

基于stm32的外部中断实现按下按键控制led灯亮灭 (HAL库)

tmk1234567890的博客 4077

视频生成工具本地部署完全指南:Seedance能装吗?有哪些开源替代?

本文系统介绍了视频生成模型的本地部署方案,分为三个部分:1)Seedance 2.0的混合部署模式,其开源组件可本地集成但核心功能需调用API;2)完全开源替代方案对比,包括LTX-2、Wan 2.1等模型的硬件需求与特点;3)详细部署指南,以ComfyUI+Wan 2.1为例,涵盖软件准备、模型整合、参数调优等步骤,并提供了显存优化和多GPU配置技巧。文章为需要离线视频生成能力的用户提供了完整技术路径。

小明的博客 1万+
上一篇: 【STM32】HAL库——点亮LED灯
下一篇: 一行代码如何自定义修改网页内容
Q大帅
博客等级 码龄7年 5402粉丝 50原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值