7 拓展中断_事件控制器(EXTI)(STM32HAL库 )

news2024/11/13 21:39:11

目录

EXTI-扩展中断和事件控制器

事件的概念

EXTI-扩展中断和事件控制器

EXTI外设框图

F1/F4/F7(看懂与或门)

H7

STM32CubeMX中的EXTI配置


EXTI-扩展中断和事件控制器

事件的概念

  • STM32上许许多多的外设,是通过内部信号来协同工作的。这个信号,可以理解为事件。比如一个定时器(TIM),当我们使用定时器来计数的时候,怎么知道定时器已经计数完毕?这时就往往通过一个“计数完成事件”来告知(系统/用户)计数已经完成。
  • 有些事件是可见的,有些事件是不可见的。事件的可不可见,具体体现在寄存器里可不可以查到这些事件的标志。那如果我们想使用这些事件的时候,该怎么做?查询事件标志吗?
  • 在STM32中,绝大多数事件是不可见的,但是事件几乎都与中断功能绑定在一起。所以通常我们会开启中断的功能,来使用相应的事件。
  • 事件 ----> 中断 事件 ---->事件(即事件可以导致中断的产生,也可以导致另一个事件的产生)

EXTI-扩展中断和事件控制器

  • EXTI-扩展中断(也叫外部中断)和事件控制器,是STM32上的一个外设。它可以捕获外部输入线电平变化等等的一些事件。EXTI捕获到了事件后,还可以生成相应的EXTI中断及等等的一些中断。
  • 所以EXTI外设可以大致概括为两个功能:
    • 捕获外部输入等事件。
    • 生成EXTI中断等中断请求。

EXTI外设框图

F1/F4/F7(看懂与或门)

  • 其中输入线一般指GPIO的输入,但在F7中,由于F7的功能强大,就不仅仅包括GPIO的输入(硬件触发)了,还包括软件触发(由软件中断事件寄存器来决定)
  • 下降沿触发选择寄存器和上升沿触发选择寄存器决定了输入信号是否允许传入到下一级去。如果既不满足下降沿和上升沿,信号就无法通过边沿检测电路传入下一级门电路
  • 请求挂起寄存器可以判断出是哪一种触发方式触发了事件
  • 最终到NVIC中断控制器中,就可以切实的产生中断了
  • 触发中断时,如果不想产生中断,可以使用屏蔽寄存器将中断信号拦截住

H7

其中可配置事件可根据F1/F3/F7框图来理解

直接事件输入指使用外设来唤醒芯片

主要功能是利用中断事件来申请中断请求或者唤醒CPU

STM32CubeMX中的EXTI配置

(1)选择GPIO线路

(2)进行模式选择

其中可以选择外部中断模式和外部事件模式,以及选择边沿触发方式

  • 中断模式:既产生中断信号也产生事件信号
  • 事件模式:只产生事件信号,事件模式一般用于将外部输入线的事件来触发ADC信号的转换或者其它外设的一些功能

这里选择双边缘触发外部中断方式

(3)配置NVIC

这里警告不用管。

这个警告的意义在于提醒开发者当你选择了引脚某功能后,会限制其他category 的部分功能。

如上图中被cubeMX 用紫红色标出的 System Wake-Up 4。

这种警告就是说一个管脚有多个可能的作用,你选择了一个之后,其他不能选,用一个警告三角形提示你。

(4)生成工程

(5)查看工程代码

EXTI代码如图所示

其中CubeMX是使用HAL_GPIO_Init来通过判断Mode的为IT从而实现EXTI的配置

同样我们也可以直接使用EXTI的库包来配置

补充:中断的触发流程和复位异常的触发流程是一样的。

当我们触发一个中断之后,CPU会去中断向量表中进行偏移,找到对应中断在中断向量表中的中断服务函数入口地址。

简单来说就是当中断成功触发了,就会跳转到相应中断的中断服务函数中去

记得自己指定的操作要写在中断服务函数的if内

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Compose Button defaultButtonColors

Android Compose Button defaultButtonColors 本文最新更新地址 https://gitee.com/chenjim/chenjimblog 发现问题 最近看 Android Compose 相关资料发现如下代码 colors defaultButtonColors( backgroundColor if (count > 5) Color.Green else Color.White )原文地…

从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题

目录 1. 多态(polymorphism) 1.1 构成多态的两个条件 1.2 虚函数重写(覆盖) 1.3 协变构成多态 1.4 父虚子非虚构成多态 1.5 析构函数的重写 1.6 final 和 override 关键字(C11) 1.7 重载、覆盖、隐藏的对比 2. 抽象类&am…

通信接口和通信方式总结

通信接口和通信方式总结 一、通信接口主要的5种类型二、通信方式2.1 并行和串行2.2 单工、半双工及全双工通信2.3 串行通信分类 - 同步\异步2.4 波特率 Baud Rate 三、串联设备的接口类型 - 网口和串口3.1 串口 - COM口3.1.1 基本介绍及应用3.1.2 接线方式 - 232、422、485接线…

时序预测 | MATLAB实现PSO-GRU(粒子群优化门控循环单元)时间序列预测

时序预测 | MATLAB实现PSO-GRU(粒子群优化门控循环单元)时间序列预测 目录 时序预测 | MATLAB实现PSO-GRU(粒子群优化门控循环单元)时间序列预测预测效果基本介绍模型介绍PSO模型GRU模型PSO-GRU模型 程序设计参考资料致谢 预测效果 基本介绍 Matlab基于PSO-GRU粒子群算法优化门…

【vue3-element-admin 】基于 Vue3 + Vite4 + TypeScript5+ Element-Plus 从0到1搭建企业级后台管理系统(前后端开源)

vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 Vite4 TypeScript Element Plus Pinia Vue Router 等当前主流框架。 相较于其他管理前端框架,vue3-element-admin 的优势在于一…

Docker中安装Nginx

查看可以安装的Nginx版本: docker search nginx 下载最新版本: docker pull nginx :latest 可以省略 运行容器: docker run -itd --name my_nginx -p 80:80 nginx 在主机通过 https://localhost:80或者 http://192.168.40.100:80可以访问 如果之前创…

Java阶段四Day10

Java阶段四Day10 文章目录 Java阶段四Day10关于RedisRedis的数据类型Redis中的list类型Redis的常用命令关于Key的格式Redis编程使用Redis时的数据一致性问题 关于ApplicationRunnerLoadCacheRunnerContentCategoryServiceImpl 计划任务ScheduleConfigurationCategoryCacheSched…

已烧写过的镜像重新烧镜像教程

本教程是已经烧录过镜像的SD卡,无法被电脑识别盘符导致无法重新烧录镜像的教程。一般是win7系统无法识别烧录过的Ubuntu系统盘符。win10可以使用SDformat软件格式化。 1.确定读卡器是否识别到SD卡。 点击计算机右键选择“管理”,选择磁盘管理&#xff0…

Vue3中Vuex的基本使用

src/store/uuidState.js const uuidState {namespaced: true,state: {uuid: "",state_tag: "",},// 要想改变state中的数据必须使用mutations的方法mutations: {changeUuid(state, value) {state.uuid value;},changeTag(state, value) {state.state_ta…

如何通过空号检测,验证电话号码数据的准确性

引言 空号检测 API 接口通常与电话号码数据库或相关的电话服务提供商进行交互,使用验证算法和查询技术来确定电话号码的状态。通过该接口,开发者可以通过编程方式对电话号码进行验证,帮助验证号码的有效性,确保数据的准确性和可靠…

HJ76 尼科彻斯定理

描述 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 例如: 1^31 2^335 3^37911 4^313151719 输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。 数…

vmware17安装群辉6.2懒人包

懒人包下载 链接:https://pan.baidu.com/s/1onGpM3BLIKUuxs10lLM83A?pwdcmdr 提取码:cmdr --来自百度网盘超级会员V5的分享 解压安装 如果已经安装了vmware软件的话,直接双击打开即可 上图说明安装成功 点击搜索 , 会出现服务…

0-1BFS 双端队列 广度优先搜索

一. BFS及0-1BFS的简单介绍 深度优先搜索DFS和广度优先搜索BFS是经常使用的搜索算法,在各类题目中都有广泛的应用。 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。其过程简要来说…

pwn学习day3——函数调用约定

文章目录 x32 cdecl调用约定x64 System V AMD64 ABI调用约定 规定函数调用时如何传递参数,如何返回值,如何进行栈管理 x32 cdecl调用约定 参数从右往左依次压入栈中,返回值存入eax寄存器中,由调用者清理栈上的参数。 测试程序: …

转载-【AI思维空间】Chat2DB 一款开源数据库客户单工具

卸载 Navicat, xxx 又开源了一款数据库神器,太炸了 Chat2DB 是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2D…

基于JSP+Servlet+Mysql的智能化停车场管理系统(含论文)

TOC 一、系统介绍 项目类型:Java web项目 项目名称:基于JSPServlet的智能智能停车场管理系统 源码作者:未知 项目架构:B/S架构 开发语言:Java语言 前端技术:HTML、CSS、JS等技术 后端技术&#xff…

中国国债发行数据集(2002-2023)

国债是由国家发行的债券,由于国债的发行主体是国家,所以它具有最高的信用度,被公认为是最安全的投资工具。国债按照交易市场的不同分为三类,即银行间市场国债、交易所市场国债和柜台市场国债;按照交易方式的不同分为三…

PCB绘制封装

绘制封装 常见的电阻封装如下: 绘制封装的一般步骤: 丝印不重要,关键是焊盘。 第一步是确认中心(对称中心);第二步,围绕着对称中心,放置焊盘。直插式的焊盘要放大孔径,贴片式的焊盘要加长&am…

springboot-配置优先级

配置文件 类型 1.properties(三者同时存在,优先级最高) 2.yml 3.yaml(最低) 除此之外,可以在启动配置处修改 //java系统属性配置, -Dserver.port8080,优先级高于以上三种 //命令行参数 --server.port10010&#xff0…

【SQL应知应会】行列转换(一)• MySQL版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 行列转换 • Mysql版 一、MySQL行列转换1.准备操作…