STM32-外部中断浅析

本篇解释了STM32中断原理

MCU为什么需要中断

中断,是嵌入式系统中很重要的一个功能,在系统运行过程中,当出现需要立刻处理的情况时,暂停当前任务,转而处理紧急任务,处理完毕后,恢复之前的任务。

中断的优势:
在MCU和外设之间进行平衡
MCU的处理速度远高于外设,如果没有中断机制,系统将不得不定期检查外部设备状态,这是一种资源浪费。中断机制避免了不必要的轮询,仅在设备就绪时才进行处理。

快速响应外部事件:
在实时系统中,中断机制使得计算机能够即时响应外部事件,很多场景下,信号不会等待MCU处理完才消失,如果单个时间窗口没有对信号进行采集,原始信号就被新的信号覆盖了,因此中断对于实时数据处理至关重要。

STM32 如何实现中断

在这里插入图片描述
在这里插入图片描述
外部中断控制器框图
上图为STM32的外部中断控制器框图,可以从右至左来理解这个框图,从输入线为起点,信号从IO口到达边沿检测电路,边沿检测电路可以通过两个寄存器进行配置。
这两个寄存器用于设置中断的触发条件(上升沿触发,下降沿触发,上升沿下降沿同时触发),可以理解为这里就是设置条件,一旦输入满足条件,边沿检测电路就放行信号,否则不做任何动作。

接着往左,软件中断寄存器和边沿检测电路的输出通过OR门连接在了一起,这也意味着可以通过软件来触发这条输入线的中断。即使外部条件未满足,软件中断事件寄存器被设置,也能触发中断。这个经常被用于通过软件实现故障注入,以测试系统的功能是否满足需求。

接着往左,触发的中断信号会指向请求挂起寄存器,这里就等于高速NVIC,我要中断,请批准。
而它左侧的中断屏蔽寄存器则是用于设置,要不要开启对中断的响应。
当中断屏蔽寄存器没有被开启时,即使有对应的中断,NVIC也不会响应这个中断请求。
如果一路畅通无阻,信号就会进入NVIC中断控制器,在经过优先级排序后被MCU进行处理了。

往下看,会看到中断请求信号与事件屏蔽寄存器通过AND门连接在一起,这里是用于以中断触发事件。即可以通过脉冲发生器快速的去控制其他外设,比如点亮LED灯,拉低某个PIN脚的电平。

至此,中断信号的输入到中断请求的输出就梳理清楚了。
接下来看看在处理中断信号输入中STM32做了哪些设计,

AFIO

外部中断/事件线路映像(AFIO)
AFIO在STM32中主要完成选择中断引脚和引脚功能的重映射两种功能。由于芯片空间有限,为了更好的提高效率节省资源,并不是每一根引脚都有其对应的中断线,他们是共用的关系。
1.中断引脚选择
在这里插入图片描述
在MCU无法将每一个外部引脚都连接至内核的情况下,PIN脚以组的形式共用中断线(图中的EXTI0),可以看到PA0-PG0都连接至EXTI0,AFIO通过配置寄存器来选择具体哪个引脚连接至中断线。

2.引脚功能的重映射
在这里插入图片描述
STM32中,部分引脚能够通过AFIO进行重定义,以实现当前引脚下所能配置的其他功能,这一部分内容暂且不表。

NVIC

嵌套向量中断控制器(NVIC)是外设和MCU之间的桥梁,负责接收来自外设的中断,并根据中断优先级交给MCU进行处理

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

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

相关文章

深度学习之正则化

目标 我们学习正则化之前应该先了解我们为什么要用正则化 。正则化解决了什么问题 。我们讲正则化之前 ,先了解一个概念–》过拟合 过拟合 数据增强 L1和L2正则化 Dropout 注意:Dropout是不适合用在卷积神经网络的 提前终止 一般的做法是:记…

B端工作台如何设计?指导思想+布局建议+大厂案例全给你

一、B端工作台设计的指导思想 要做好B端工作台设计,以下是一些建议和策略: 1. 用户研究:深入了解目标用户的需求、行为和工作流程。通过用户研究方法,如用户访谈、观察和调研,收集用户反馈和意见,了解他们…

【计算机组成原理】计算机系统概述(上)

(一)计算机系统简介 计算机系统有“硬件”和“软件”两大部分组成。 1)所谓“硬件”即指见计算机的实体部分,它由看得见摸得着的各种电子元器件、各类光、电、机设备的事物组成,如主机、外设等等。 2)所谓…

以SGET协会OSM标准首创有662引脚的OSM模组——凌华智能引领嵌入式运算市场

在可焊接的45 x 45mm尺寸上提升功率 开启嵌入式运算发展的新时代 摘要: 1.开放式标准模块(OSM™),最大尺寸仅45 x 45mm,采用零开销的模块化系统简化生产,并提供662个引脚以增强小型化和物联网应用。 2.凌华智能提供基于NXP i.M…

快速掌握AI的最佳途径实践

科技时代,人工智能(AI)已经成为许多人希望掌握的重要技能。对于普通人来说,如何快速有效地学习AI仍然是一个挑战。本文将详细介绍几种快速掌握AI的途径,并提供具体的操作步骤和资源建议。 前言 AI的普及和应用已经深…

独立站爆款产品的选品思路及底层逻辑拆解

在这个竞争激烈的跨境电商市场,有一件事情比网站设计、营销策略、物流服务都更重要。那就是选品。跨境独立站选品是独立站成功的第一步,如果选错了产品,那么所有努力都可能白费。可能会面临库存积压、利润低迷、客户流失等问题。但是如果选对…

HackTheBox--BoardLight

BoardLight 测试过程 1 信息收集 NMAP端口扫描 端口扫描开放 22、80 端口 80端口测试 # 添加 boardLight.htb 到hosts文件 echo "10.10.11.11 boardLight.htb" | sudo tee -a /etc/hosts检查网页源代码,发现 board.htb # 添加 board.htb 到 hosts 文…

星网安全产品线成立 引领卫星互联网解决方案创新

2024年6月12日,盛邦安全(688651)成立星网安全产品线,这是公司宣布全面进入以场景化安全、网络空间地图和卫星互联网安全三大核心能力驱动的战略2.0时代业务落地的重要举措。 卫星互联网技术的快速发展,正将其塑造为全球…

Camera Raw:裁剪

Camera Raw 的裁剪 Crop面板提供了裁剪、旋转、翻转、拉直照片等功能,通过它们可以更精确地调整照片的视角和范围,以达到最佳二次构图的视觉效果。 快捷键:C ◆ ◆ ◆ 使用方法与技巧 1、使用预设 选择多种裁剪预设(如 1:1、16:…

【安全设备】下一代防火墙

一、什么是防火墙 防火墙是一个网络安全产品,它是由软件和硬件设备组合而成,在内网和外网之间、专用网与公共网之间的一种保护屏障。在计算机网络的内网和外网之间构建一道相对隔离的保护屏障,以达到保护资料的目的。它是一种隔离技术&#…

将QComboBox下拉项中的文本居中、居右

目录 1. 需求提出 2. 解决方法 1. 需求提出 QComboBox下拉项中的文本默认是居左的,如下: 有时需要将下拉项中的文本居中、居右。如何实现? 2. 解决方法 首先想到的是通过样式表来解决,但找遍Qt Assist和网络,都没这…

java设计模式(十)外观模式(Facade Pattern)

1、模式介绍: 外观模式是一种结构型设计模式,提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,使得子系统更容易使用。 2、应用场景: 当你希望为复杂的子系统提供一个简单接口时。 当客户…

电脑数据恢复篇:如何从电脑中恢复已删除的照片

按下 Shift Delete 后后悔了?想要恢复已删除的照片?好吧,如果是这样的话,你来对地方了。在本文中,我们将讨论如何从 PC 中恢复已删除的文件。 自从摄影的概念被提出以来,人们就对它着迷。以前&#xff0c…

中国各省金融监管水平-测算数据(2006-2022年)

金融监管水平是指政府及其指定机构通过法律法规对金融机构及其市场行为进行监督、管理与规范的能力和效率,以维护金融体系稳定、保护投资者和消费者权益、促进公平竞争及支持经济增长。衡量金融监管水平的指标多样,常见的一种计算方式是金融监管支出与金…

[AI 大模型] Google Gemini

文章目录 [AI 大模型] Gemini简介模型架构发展新技术和优势示例 [AI 大模型] Gemini 简介 Google Gemini 是 Google 最新推出的多模态 AI 大模型,旨在提升 AI 在各个领域的应用能力。Gemini 能够处理文本、图像、音频、视频和代码等多种数据类型,展现出…

模拟考试小程序的设计

管理员账户功能包括:系统首页,个人中心,科目管理,复习资料管理,参考文献管理,用户管理,留言板管理,论坛管理 微信端账号功能包括:系统首页,复习资料&#xf…

128陷阱详解(从源码分析)

1、128陷阱描述 Integer 整型 -128~127 超过这个范围,比较会不准确 例子 public static void main(String[] args) {Integer a128;Integer b128;Integer e127;Integer f127;System.out.println(ab); //输出falseSystem.out.println(a.equals(b)); //输出trueS…

【十八】【QT开发应用】标签页QTabWidget的常见用法

#include "widget.h" // 包含自定义的widget头文件 #include <QHBoxLayout> // 包含QHBoxLayout头文件&#xff0c;用于水平布局 #include <QTabWidget> // 包含QTabWidget头文件&#xff0c;用于创建标签页控件 #include <QDebug> // 包含QDebug头…

数据中心的智能负载组,为什么以及做什么?

停电会因停机而造成巨大损失。根据电力研究所 &#xff08;EPRI&#xff09; 的数据&#xff0c;98% 的停电持续时间不到 10 秒。但这10秒是毁灭性的。由于每分钟闲置的成本约为 5,600 美元&#xff0c;公司投资于确保其基础设施连续性的系统。负载组是测试和确保所需连续性的基…

Python面试宝典第8题:二叉树遍历

题目 给定一棵二叉树的根节点 root &#xff0c;返回它节点值的前序遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&#xff1a;root […