(4.2)STM32中断系统

news2024/11/18 10:48:28

目录

1.中断基本概念

2.中断的意义

3.中断处理过程

4. 中断体系结构

5.NVIC

6.EXTI


 1.中断基本概念

在处理器中,中断相当于对于突发事件的处理过程。

当遇到内部/外部的紧急事件需要处理时,暂时中止当前程序,转而去处理紧急事件,

待处理完毕后,再返回被打断的程序继续向下运行。

(NVIC在内核里)

2.中断的意义

中断能够对突发事件进行及时处理,实现程序的并行化,进而提高CPU的工作效率。

//为什么提高效率了? 

        因为CPU对于没有发生的事情是在不停的在轮询(询问有没有发生?)

3.中断处理过程***

 示例:

1.看电影---正在执行的主程序

2.来电话---中断信号

3.暂停电影---压栈,把变量压进栈里

4.取快递---处理中断事件(中断处理函数)

5.继续看电影---出栈

中断处理过程:

 进入中断 

 处理器自动保存现场到堆栈里

 {PC, xPSR, R0-R3, R12, LR}

 一旦入栈结束,ISR便可开始执行

退出中断

 中断前的现场被自动从堆栈中恢复

 一旦出栈完成,继续执行被中断打断的指令

 出栈的过程也可被打断,使得随时可以响应新的中断而不再进行现场保存

         R0 - R12 

        R13  栈指针 SP       : 指向栈顶地址

        R14 链接寄存器 LR :存放返回地址

        R15 程序计数器 PC :保存要执行的指令地址

中断做多任务不可避免的

前后台系统

 

4. 中断体系结构

5.NVIC 

    嵌套向量中断控制器(Nested Vectored Interrupt Controller) 

    NVIC主要功能

     负责管理中断 (CPU的小助理)

     1)管理中断事件

     每一个中断事件都有执行或禁止两种状态,由NVIC负责将中断事件标记为清除和挂起两种状态。 

     (当多个中断事件同时到达时,NVIC会优先处理优先级更高的事件)

      (当中断执行完成时,NVIC会将中断事件置为清除状态)

  2)支持中断向量化处理

      当中断事件发生时,处理器会将PC置为中断事件入口函数的地址,进而跳转到中断服务程序去执行,这就是个中断(异常)向量,因为每一个异常源或者中断事件都会对应一个服务程序的入口地址,将这些地址按照优先级进行排布后,组成的一张表就称为中断(异常)向量表。

中断和异常向量表:存在FLASH里,本质是中断函数的地址,内核里面叫异常,内核外面叫中断

                                 有优先级,数越小越大,除此又可以编辑的

 

  Cortex-M0内核 可以处理15个内部异常和32个外部中断

 STM32G030 只使用了6个内部异常和28个外部中断

    3)支持中断嵌套 

          STM32的功能,与优先级有关

          3个固定的优先级,都是负值,不能改变。

          四个可编程优先级,用两个bit位表示,00,01,10,11 

          优先级数值越小,优先级等级越高。

       注意

      不同优先级的中断同时发生,优先处理优先级编号较小的那个

      同样优先级的中断同时发生,中断向量号较小的那个优先响应

6.EXTI

    外部事件/中断控制器

   主要功能:

       一个功能是产生中断,另一个功能就是产生事件。

产生中断的目的,是将信号送入NVIC,进而运行中断服务程序,实现对应功能,是软件级。

产生事件的目的,是将采集到的一个脉冲信号送到某个外设,进而驱动某些设备做出动作,是电路级别的传输,是硬件级的。

EXTI外部中断控制器EXTI

共28个中断线GPIO有16个中断线

 系统配置控制器SYSCFG

主要用于管理GPIO的外部中断

  结构框图:

 

       编号1是信号输入线,EXTI支持产生多达28个外部事件/中断请求。

编号2是边沿检测电路,用于监测上升沿或下降沿信号。

它会根据上升沿触发选择寄存(EXTI_RTSR)和下降沿触发选择寄存器(EXTI_FTSR)对应位的设置来控制信号触发。

边沿检测电路以输入线作为信号输入端,监测是否有边沿跳变,检测到有边沿跳变输出有效信号 1 给编号 3 电路,否则输出无效信号0。

编号3是一个或门电路,信号来源是外部事件或者软件中断/事件寄存器产生。

允许我们通过程序控制EXTI_SWIER就可以启动中断/事件线

编号4是一个与门电路,信号来源是编号3送来的信号和中断屏蔽寄存器的值,

如果中断屏蔽寄存器为0,也不会将信号送到NVIC,

只有编号3送来了中断信号且中断屏蔽寄存器允许产生中断,才会将中断信号送入NVIC.

接下来我们来看看红色虚线指示的电路流程。它是一个产生事件的线路,最终输出一个脉冲信号。

     产生事件线路是在编号3电路之后与中断线路有所不同,之前电路都是共用的。

编号5是一个与门电路,信号来源是编号3送来的信号和事件屏蔽寄存器的值,

如果事件屏蔽寄存器为0,不会将信号送到脉冲发生器,

只有编号3送来了信号且事件屏蔽寄存器允许产生事件,才会将信号送入脉冲发生器(编号6), 进而产生脉冲来控制外部设备做出动作。

这样我们可以简单的控制 EXTI_EMR 来实现是否要产生事件的目的

 

 

 

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

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

相关文章

使用 ESP32 UWB DW3000进行测距和定位

什么是超宽带及其工作原理? UWB 是一种类似于蓝牙或 Wi-Fi 的短距离无线通信协议。它还使用无线电波进行通信并以非常高的频率运行。顾名思义,它还使用几 GHz 的宽频谱。可以将其想象成一种雷达,可以连续扫描整个房间并像激光束一样精确锁定物体以发现其位置并传输数据。 超…

08-用户权限控制

1、用户权限控制 权限控制是什么:控制用户对系统资源(URI)的操作。 前端的权限控制:对页面或页面元素的权限控制。 > 页面访问权限:哪些页面可以访问、哪些页面元素可见等等。 > 操作权限:如页面按钮是否可点击、是否可以增删改查等等 后端的权限控制:对接口及…

网络协议之HTTP详细解释

文章目录 前言一.Web发展的阶段二.http协议初识2.1 概念2.2 http的发展史2.3 http协议的作用2.4http协议的格式 三.抓包工具的介绍什么是抓包抓包工具的原理抓包工具的使用和下载- 具体下载过程:- 使用过程 四.HTTP请求请求行请求报头 五.HTTP响应状态行响应报头响应正文 前言 …

Java+Redis实现撤销重做功能

文章目录 1.背景2.需求分析3.实现逻辑分析4.统一过期时间设置5.初始图表栈6.记录图表变化7.撤销操作8.重做操作9.删除图表处理 1.背景 ​ 在一个编辑页面中,存在多个图表,对图表的配置操作允许撤销和重做;撤销和重做只是针对页面中图…

马斯克宣布将卸任推特 CEO:已找到接班人,自己要去当 CTO

作者 | 李冬梅 来源 | AI前线 ID | ai-front 当地时间 5 月 11 日,马斯克在特推上发文宣布,他将在 6 个星期后正式卸任推特 CEO 一职,并且已经找到了一位女性接班人,自己将转到技术岗位。 马斯克在推文中写道:“很…

Yolov5轻量级:EfficientViT, better speed and accuracy

EfficientViT: Memory Efficient Vision Transformer with Cascaded Group Attention 论文:https://arxiv.org/abs/2305.07027 代码:Cream/EfficientViT at main microsoft/Cream GitHub 🏆🏆🏆🏆🏆🏆Yolo轻量化模型🏆🏆🏆🏆🏆🏆 近些年对视觉Tra…

Java【网络原理3】TCP 协议的确认应答、超时重传机制

文章目录 前言一、确认应答1, 什么是确认应答2, 序列号和确认应答号 二、超时重传1, 什么是超时重传 总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: 📕 JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系…

【redis】redis为什么这么快?高性能设计之epoll和I/O多路复用深度解析

系列文章目录 文章目录 系列文章目录前言一、before 学习I/O多路复用之前多路复用 需要解决的问题 一对一性能差结论 需要让一个进程同时处理多个连接 二、I/O多路复用模型1、是什么?一句话 2、redis单线程如何处理那么多并发客户端连接,为什么单线程&am…

Edge插件之WeTab,画面优美,可以免费使用chatgpt,很难不爱

目录 一、普通的edge新标签页 二、安装WeTab插件 1.WeTab插件的安装非常简单,只需在百度搜索wetab,进入官网: 2.进入官网,点击edge图标,进入插件下载页面: 3.这里由于我是已经安装成功,显示…

无法上网问题解决过程

下班,收到一同事在群里说,环境里有冒充网关的mac的,现在无法上网,让arp -s ip mac地址,先绑定正确的网关mac地址,先临时使用,等第二天上班再查找原因。 不能上网原因: 1、环境…

Cloud Studio 内核升级之触手可及

前言 Cloud Studio是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器就能使用。云端开发体验与本地几乎一样,上手门槛更低&#x…

IMU和GPS融合定位(ESKF)

说明 1.本文理论部分参考文章https://zhuanlan.zhihu.com/p/152662055和https://blog.csdn.net/brightming/article/details/118057262 ROS下的实践参考https://blog.csdn.net/qinqinxiansheng/article/details/107108475和https://zhuanlan.zhihu.com/p/163038275 理论 坐标…

三年测试,月薪才12k,想跳槽又不太敢.....

在我们的身边,存在一个普遍现象:很多人从事软件测试岗,不计其数,经历的心酸难与外人道也。可是技术确难以提升、止步不前,薪资也只能看着别人水涨船高,自己却没有什么起色。 虽然在公司里属于不可缺少的一…

java学习笔记

java学习笔记 直接写出来的人可以理解的数据,在java中叫做字面量。 字面量分类: 数据类型分类: 不同的数据类型分配了不同的内存空间,不同的内存空间,所存储的数据大小是不一样的。 数据类型内存占用和取值范围…

JavaSE入门必读篇——详解数组

文章目录 数组的概念1.什么是数组呢?2.如何创建数组3.遍历数组4.扩展:快速批量初始化 数组原理内存图1. 内存概述2.Java虚拟机的内存划分3.其存储方式图4.认识null 二维数组二维数组初始化遍历二维数组 数组常见异常1. 数组越界异常2. 数组空指针异常 Ja…

Windows下编译安装gRPC

gRPC是Google基于HTTP/2协议开发的一套开源、跨平台的高性能RPC框架,可用于连接微服务架构内的各种服务,亦可以连接客户端与后端服务。 Ref. from gRPC gRPC is a modern open source high performance Remote Procedure Call (RPC) framework that can…

代码随想录算法训练营第二十四天|理论基础 77. 组合

文章目录 理论基础77.组合思路代码总结 理论基础 回溯算法:一种暴力搜索方式 回溯是递归的副产品,只要有递归就会有回溯。 回溯法,一般可以解决如下几种问题: 组合问题:N个数里面按一定规则找出k个数的集合切割问题…

数据安全技术工作部成员动态 | 鸿翼联合天空卫士打造“基于内容的敏感信息处理”解决方案

据2022年统计数据表明,因IT故障、人为错误、供应链攻击、破坏性攻击和勒索软件攻击等原因导致的数据泄露事件频繁发生,信息安全问题比以往任何一个时代都更为突出。信息泄漏造成的危害体现在多方面,不法分子通过各种途径收集的公司的某些重要…

大数据法律监督模型优势特色及应用场景

大数据法律监督平台是基于监督数据整合管理平台、监督模型构建平台、内置模型库以及法律监督线索管理平台打造的一套服务于检察机关法律监督工作的专业化系统。通过数据采集、融合、挖掘、建模、展现等一系列能力,辅助检察官从纷繁复杂的数据中,开展多维…

基于可靠姿态图初始化和历史重加权的鲁棒多视图点云配准

论文作者 | Haiping Wang, Haiping Wang,Haiping Wang,etal 论文来源 | CVPR2023 文章解读 | William 1 摘要 之前的多视图配准方法依赖于穷举成对配准构造密集连接的位姿图,并在位姿图上应用迭代重加权最小二乘(IRLS)计算扫描位姿。但是,构造一个密集…