【STM32】外部中断

当程序正常运行执行main函数,此时如果外部中断来了,执行外部中断函数,实现相应的功能,然后就可以回到main.
一般stm32芯片每个引脚都有自己的外部中断,但是为了限制,会有一个中断线,对应一个中断线执行一个外部中断函数
PA0,PB0,PC0为中断线0

PA1,PB1,PC1为中断线1

我们实现PA7,按键1按下触发中断,然后使LED1(PB10)翻转

配置stmcubemx和上一篇一样

1.配置GPIO

使用灯和按键,所以要配置GPIOA,GPIOB,以及GPIOA,GPIOB模式初始化。
在这里插入图片描述
MY_LED声明
在这里插入图片描述

设置GPIOB
在这里插入图片描述

2.设置中断优先级分组

其实中断优先级分组已经设置好,HAL_Init();
在这里插入图片描述

在这里插入图片描述
这个函数就是设置中断优先级组的.
在这里插入图片描述
默认有5个中断优先级分组,中断优先级分抢占优先级和响应优先级,不同的优先级分组,抢占,响应占比不一样.不一定NVIC_PRIORITYGROUP_4 的优先级就高,只能说明该分组抢占优先级的范围为0-15,看具体怎么设置,两个中断,如果抢占优先级相同的话,就比较响应优先级谁小,谁的优先级就高,如果一个的抢占优先级数值小的话,就直接不用比较响应优先级了,直接抢占优先级数值小的优先级就高.默认设置中断优先级组为4的话,说明四位都是抢占优先级位,没有响应优先级

3.设置优先级

在这里插入图片描述

HAL_NVIC_SetPriority();//设置优先级

因为我们使用的是PA7位实现中断,所以对应中断线7,
在这里插入图片描述
但是发现没有中断线7,这里人家是把中断线5-9放在一个里面,设置EXTI9_5IRQn
在这里插入图片描述

4.打开中断

HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);  //打开中断

在这里插入图片描述

5.实现中断函数

在这里插入图片描述
在这里插入图片描述

找对应中断线的中断函数
在这里插入图片描述
中断函数1去调用中断函数2
在这里插入图片描述
但是真正的中断函数可以理解为需要我们重写这个函数,可以看一下定义
在这里插入图片描述
我们自己实现,实现灯的翻转
在这里插入图片描述

6.全部实现在.h声明

stm32f4xx_it.h
在这里插入图片描述
这个不用声明
在这里插入图片描述

gpio.h

在这里插入图片描述

7.main.c调用

在这里插入图片描述
在这里插入图片描述
但是我们发现下载之后按下按键后没有实现灯的翻转,这里的原因如下:
在这里插入图片描述
此时在处理中断函数,他的抢占优先级是0,响应优先级是0,而延迟函数去抖动使用的是滴答定时器,他使用的中断优先级是多少呢?我们可以在STMCUBEMX里面看
在这里插入图片描述
滴答定时器的抢占优先级为15,也就是最低级,他会阻塞等待该中断函数处理完,才能解除阻塞,
所以我们需要注释掉延时去抖动函数即可
在这里插入图片描述

8.演示

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建内网文件服务器(FTP),以及实现内网Gitee

一、实现windows搭建FTP,实现文件共享和管理 具体步骤: 1.打开控制面板,搜索功能 2.打开这几个配置 3.打开IIS,添加FTP站点即可 二、实现内网Gitee 参考博客: Gitblit服务器搭建及Git使用-CSDN博客 jdk1.8.0的安…

零基础国产GD32单片机编程入门(二十五)USB口介绍及CDC类虚拟串口通讯详解及源码

文章目录 一.概要二.USB2.0基本介绍及虚拟串口介绍三.GD32单片机USB模块框图四.GD32单片机USB设备模式五.GD32F103C8T6 USB设备CDC类六.配置一个USB虚拟串口收发例程七.工程源代码下载八.小结 一.概要 GD32F103C8T6 USB虚拟串口是一种采用GD32F103C8T6单片机,通过U…

vscode中使用go环境配置细节

1、在docker容器中下载了go的sdk 2、在/etc/profile.d/go.sh里填入如下内容: #!/bin/bashexport GOROOT/home/ud_dev/go export PATH$GOROOT/bin:$PATH3、设置go env go env -w GOPROXYhttps://goproxy.cn,direct go env -w GO111MODULEon 4、重启这个容器&#…

Java之ArrayList

1.ArrayList的简介 在集合框架中,ArrayList是一个普通的类,实现了List接口,具体框架图如下: ArrayList是以泛型方式实现的,使用时必须要先实例化ArrayList实现了RandomAccess接口,表明ArrayList支持随机…

springboot对数据库进行备份+对一个文件夹内的文件按时间排序,只保留最近的8个文件

首先,对数据库进行备份,用到的命令: mysqldump --opt -h 192.168.1.200 --userroot --passwordxxx --result-fileE://data//20240911141400.sql --default-character-setutf8 xxx(数据库名) 直接上代码 配置文件部分…

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 GPT系列论文速通论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具…

app抓包 chrome://inspect/#devices

一、前言: 1.首先不支持flutter框架,可支持ionic、taro 2.初次需要翻墙 3.app为debug包,非release 二、具体步骤 1.谷歌浏览器地址:chrome://inspect/#devices qq浏览器地址:qqbrowser://inspect/#devi…

C++:C++的IO流

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 C语言的输入与输出 二 流 三 CIO流 ​编辑 3.1 C标准IO流 3.2 C文件IO流 3.3 stringstream的简单介绍 四 CIO流的效率问题 总结 前言 本篇详细介绍了进一步介绍C中的IO流&#…

点可云ERP进销存V8版本PHPstudy(小皮)安装讲解

安装视频讲解链接: 点可云ERP教程 - PHPstudy安装篇_哔哩哔哩_bilibili 1、下载准备 PHPstudy可在官网下载(https://www.xp.cn/)不推荐在Linux系统安装小皮面板,Linux系统还是使用宝塔较好, 在PHPstudy官网下载时需要…

Rust运算符

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) https://blog.csdn.net/brucexia/category_12779443.html 前面已经学习了变量和常量,本节开始对它们进行操作&#xff0c…

第三方软件测评机构分享:软件性能测试的测试方法和内容

软件性能测试是对软件系统在特定负载和条件下的性能进行评估的过程。它旨在确定软件的响应时间、稳定性、资源消耗及其可扩展性,以确保其在实际环境中能够满足用户的需求。通过性能测试,开发团队能够发现潜在的瓶颈问题,优化应用程序架构&…

前端:JavaScript 实现类

文章目录 1. Es6-类-class2. Es6-class 实现继承3. Es6-class 静态属性和私有属性4. Es5-寄生组合式继承 1. Es6-类-class 类是创建对象的模板,用代码封装数据以处理该数据,js中的类建立在原型上。 如何定义类,首先需要关键字 class&#x…

聊天组件 Vue3-beautiful-chat

前言 最近很多公司都在搞大模型,类似于 chatgpt 的功能;而 chatgpt 的界面其实就是个对话框。今天就介绍一个不错的对话框组件 Vue3-beautiful-chat 项目框架 vite vue3 TS Vue3-beautiful-chat 使用流程 1、引用三方件 npm install Vue3-beaut…

【JAVA基础】实现Tomcat基本功能

文章目录 TCP/IP协议Socket编程ServletTomcat 在搜索了两三天之后,也是大概弄懂了Tomcat是个什么东西,我们在说Tomcat之前,先来了解一下下面这三个东西: TCP/IP协议 TCP/IP 是互联网通信的基础协议。TCP(传输控制协议…

SpringBoot框架下的房产销售系统开发

第一章 绪 论 1.1背景及意义 房产销售也都将通过计算机进行整体智能化操作,对于房产销售系统所牵扯的管理及数据保存都是非常多的,例如管理员;首页、个人中心、用户管理、销售经理管理、房源信息管理、房源类型管理、房子户型管理、交易订单管…

《Python青少年趣味编程108例》书籍介绍

文章目录 前言为什么选择Python?书籍介绍文章目录配套资源 前言 在这个数字化飞速发展的时代,编程已经成为了一项不可或缺的技能。对于青少年而言,学习编程不仅能够培养逻辑思维、解决问题的能力,还能激发无限创意,让…

【吊打面试官系列-Redis面试题】如果有大量的 key 需要设置同一时间过期,一般需要注意什么?

大家好,我是锋哥。今天分享关于【如果有大量的 key 需要设置同一时间过期,一般需要注意什么?】面试题,希望对大家有帮助; 如果有大量的 key 需要设置同一时间过期,一般需要注意什么? 如果大量的…

Windows terminal使用说明

1 terminal基本介绍 1 下载 从微软商店上下载的方式网速比较慢,一种直接的方式是直接用命令行运行命令 winget install --idMicrosoft.WindowsTerminal -e# Window Terminal 安装以及使用(2021最新) 2 ssh配置 # 使用Windows Terminal进行SSH登录 1 通过label…

安泰功率放大器的使用方法及注意事项有哪些

功率放大器是一种用来增加输入信号功率的电子设备。它在各种电子设备和通信系统中被广泛应用,如音响设备、收发器、无线通信设备等。使用功率放大器时,有一些重要的注意事项需要注意,以确保其正常运行并保护设备。 首先,正确的功率…

【数据结构与算法 | 灵神题单 | 分治(链表)篇】力扣148

1. 力扣148:排序链表 1.1 题目: 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4]示例 2: 输入:head [-1,5,3,4…