STM32 HAL库 外部中断 实现按键控制LED亮灭

目录

1、为什么使用GPIO外部中断控制LED亮灭?

2、NVIC嵌套向量中断控制器

3、EXTI外部中断

4、项目的硬件排线

5、STM32CUBE_MX配置

6、HAL库代码

7、实际效果


1、为什么使用GPIO外部中断控制LED亮灭?

        实现LED亮灭控制有很多方式,其中一种就是在main函数的while循环里面不断地检测GPIO引脚的电平变化实现输出的电平变化从而实现LED的亮灭控制。但是这种轮询的方式让CPU在不断地运行,不仅消耗电量而且消耗算力。

        另一种方式就是使用GPIO外部中断,这是一种可以由硬件自动触发任务执行的方式,只有需要进行控制的时候,CPU才会介入控制。

2、NVIC嵌套向量中断控制器

        NVIC属于STM32的内核外设,用于响应外设请求并让CPU跳转到指定的指令地址进行执行任务。STM32F103C8T6单片机只有10个系统异常和60个可屏蔽中断。

        STM32可以精确的控制60种中断的具体抢占优先级和响应优先级。原因是IPR寄存器组有15个寄存器。每个寄存器32位,8位控制一种中断,那么有15*4一共60个控制方式,用于解决多个相同中断的优先级处理问题。

        另外,除了上面的60个具体中断类型的控制,AIRCR寄存器还提供了对这60种中断的总的控制方式,AIRCR寄存器是一个32位寄存器,其中的10-8位用于设置总的优先级。具体位比特值对应的控制形式如下图。

        AIRCR寄存器的值会直接影响IPR寄存器8位控制位中的高四位,IPR高4位的不同组合的控制也如上图所示。

        中断向量表:就是每种中断对应跳转的函数地址,比如ADC1中断在A地址,IIC中断在C地址等。这些地址都已经被编译器提取确定无法修改,但是虽然有60种中断,但是电平变化的引脚却不止60个,所以需要在中断服务函数里面手动判定是哪个引脚触发了中断。

3、EXTI外部中断

        外部中断主要来自GPIO引脚以及STM32芯片内部的外设。具体如下:

  1. 0-15:对应GPIO_PIN 0-15中断;
  2. 16:PVD输出;
  3. 17:RTC闹钟事件;
  4. 18:USB唤醒事件;
  5. 19:连接到以太网唤醒事件(只适用于互联型产品)

4、项目的硬件排线

        具体的布线如下。系统板来自江科大最小系统板,PC13是该系统板自己集成的LED灯。

5、STM32CUBE_MX配置

        第一步:配置烧录方式

        第二步:配置PA8引脚功能

        第三步:配置PC13引脚功能

6、HAL库代码

        复杂下面的代码到main.c里面即可。HAL_GPIO_EXTI_Callback表示GPIO外部中断的回调函数,

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
    if (GPIO_Pin == GPIO_PIN_8) {
        // 切换PC13引脚的电平
        HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
    }
}

7、实际效果

        请大家多多点赞。

LED_EXTI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/756165.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

等保2.0安全计算环境解读

等保2.0,即网络安全等级保护2.0制度,是中国为了适应信息技术的快速发展和安全威胁的新变化而推出的网络安全保护标准。相较于等保1.0,等保2.0更加强调主动防御、动态防御和全面审计,旨在实现对各类信息系统的全面保护。 安全计算环…

自适应响应式瓷砖地板建材网站源码pbootcms模板

模板介绍 一款全面的自适应响应式瓷砖地板建材网站源码pbootcms模板。该模板兼容所有浏览器,整站源码下载,可以帮您节约建站成本,以高质量高效率完成网站的设计创建。 模板截图 源码下载 自适应响应式瓷砖地板建材网站源码pbootcms模板

IDEA错误:command line is too long 命令行过长

今天运行程序时遇到了一个错误,提示如下: 那么话不多说,如何解决呢? 首先点击右上角的编辑配置 点击修改选项 点击缩短命令行 选择JAR清单 好了,问题解决

数据分析-常用模型-RFM模型

一、RFM模型的底层逻辑 漏斗模型中,大部分业务都是按流程推进,可以做漏斗分析。但是,大家有没有想过一个问题: 如果没有转化过程记录,该怎么办?如果用户行为频率很高,有几十个漏斗&#xff0c…

AI与音乐的结合

前言 毫无疑问,AI的发展已经在音乐领域带来了诸多变化和影响.但人类创作仍然具有不可替代的重要性。人类的灵感、创造力以及对音乐的深刻理解和情感表达是音乐产业的核心动力来源。AI 更倾向于被视为一种辅助工具,与人类创作者相互协作和融合,共同推动音…

Python28-1 机器学习算法之决策树

决策树(Decision Tree) 决策树算法是一种常用的机器学习算法,属于监督学习范畴。它可以用于分类和回归任务,具有易于理解和解释的特点。决策树通过递归将数据分割成更小的子集,构建一个树形结构,其中每个节…

侯捷C++面向对象高级编程(上)-2-构造函数

1.inline函数 2.访问级别 3.构造函数 4.重载

《mysql篇》--查询(进阶)

目录 将查询结果作为插入数据 聚合查询 聚合函数 count sum group by子句 having 联合查询 笛卡尔积 多表查询 join..on实现多表查询 内连接 外连接 自连接 子查询 合并查询 将查询结果作为插入数据 Insert into 表2 select * from 表1//将表1的查询数据插入…

大模型知识库的使用

大模型知识库的使用通常涉及以下几个方面,使用大模型知识库可以提高信息检索的准确性和效率,促进知识的传播和应用。同时,也需要关注知识库的质量和更新,以确保提供的知识是准确和可靠的。北京木奇移动技术有限公司,专…

苏东坡传-读书笔记四

长江三峡,无人不知其风光壮丽,但对旅客而言,则是险象环生。此段江流全长二百二十余里,急流旋涡在悬崖峭壁之间滚转出入,水下暗石隐伏,无由得见,船夫要极其敏捷熟练,才可通行。三峡之…

使用shell脚本编写监控系统资源(CPU,内存,磁盘)使用情况

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月20日16点30分 🀄️文章质量:95分 目录 ————前言———— 1.本章目标 2.编写脚本 1.获取内…

关于vs code中Live Server插件安装后无法打开的问题

一、问题情况 安装好Live Server插件之后,点击open with live server只会出现界面右下角落的提示,但是不会跳转到浏览器的页面:如下所示: 二:解决步骤 1、首先进行扩展设置,默认将浏览器的设置为chrome浏览…

The difference between Manhattan distance and Cosine Distance

题意:为什么即使返回了相同的文本块,曼哈顿距离(Manhattan Distance)和余弦距离(Cosine Distance)之间还是存在差异? 问题背景: I am using the qdrant DB and client for embeddin…

Pytorch实战(二)

文章目录 前言一、LeNet5原理1.1LeNet5网络结构1.2LeNet网络参数1.3LeNet5网络总结 二、AlexNext2.1AlexNet网络结构2.2AlexNet网络参数2.3Dropout操作2.4PCA图像增强 前言 参考原视频:哔哩哔哩。 一、LeNet5原理 1.1LeNet5网络结构 LeNet-5,其中&…

如何安装和卸载软件?

如何安装和卸载软件? 💻 如何安装和卸载软件?——默语的详细教程摘要引言正文内容🖥️ 在Windows上安装和卸载软件安装软件卸载软件 🍏 在Mac上安装和卸载软件安装软件卸载软件 🤔 QA环节📝 表格…

访客(UV)、点击量(PV)、IP、访问量(VV)概念

1、https://www.cnblogs.com/QingPingZm/articles/13855808.htmlhttps://www.cnblogs.com/QingPingZm/articles/13855808.html

智慧校园-档案管理系统总体概述

智慧校园档案管理系统,作为教育信息化进程中的重要一环,它运用现代信息技术的力量,彻底改变了传统档案管理的面貌,为学校档案资源的收集、整理、存储、检索与利用开辟了全新的途径。这一系统全面覆盖学生、教职工、教学科研及行政…

今天天气正好,开锐界L去追风

早就想开着它来个惬意的自驾游,结果因为工作原因一直在忙东忙西,锐界L这车都是上下班代步使用,今天终于空闲下来了,带着它来郊区转一圈,顺便交一篇极其不正式的游记吧,写的不好。 本来打算去的远一点&…

mybatis的高级映射

mybatis的高级映射(重点) 表与表之间的关系: 一对一关系: 栗子:一个人对应一个身份证号 一对多关系: 栗子:一个用户可以有多个订单 1. 分析需求&…

第三届广东大学生网络安全线上晋级赛WirteUp

解题思路 Web Mypdf https://r0.haxors.org/posts?id15 消失的flag 开局一个Access Denied,先不慌 不知道啥原因,放进去随波逐流梭一下 用本地XFF查看网页的时候,发现了页面内容有变化了 那就抓包,然后在BurpSuite中进行修…