【STM32 CubeMX】STM32中断体系结构

文章目录

  • 前言
  • 一、中断体系的比喻
  • 二、中断的内部结构
    • 2.1 EXTI
      • 触发方式
    • 2.2 NVIC
    • 2.3 cpu与中断
    • 2.4 外部中断控制器框图
      • 上升沿触发选择寄存器
      • 屏蔽/使能寄存器
      • 等待处理寄存器
    • 2.5 中断优先级
  • 总结


前言


一、中断体系的比喻

STM32中断体系如下图所示:
在这里插入图片描述

一座大型建筑物,比如一座高楼大厦,代表整个 STM32 芯片。在这座建筑物中,有许多房间和走廊,每个房间都代表一个特定功能的模块或外设,比如 GPIO、UART 等。

GPIO(通用输入输出):想象每个房间都有窗户,用于与外界交流。这些窗户可以用来输入信息(外部信号)或输出信息(驱动外部设备)。GPIO 窗户可以被打开或关闭,以允许或阻止信息的流动。

EXTI(外部中断):有些房间有特殊的门,称为 EXTI 门。当外部事件发生时,比如有人敲门,这些门会触发一个中断,通知系统发生了某些重要的事情。

NVIC(中断向量控制器):NVIC 就像一个大厅,里面有一个信息中心,负责管理整栋大楼中发生的所有事件和紧急情况。当有门被触发时,信息中心负责通知大楼的其他部分,告诉它们如何处理这个事件。

UART(通用异步收发传输器):想象一个房间里有一个电话,可以用来和外界通信。UART 中断就像是电话铃声响起,通知你有人在打电话,你需要停下手头的工作去接听电话。

综合以上,整个 STM32 中断结构就像一座大楼,有许多房间(外设模块)和走廊(数据总线),以及信息中心(NVIC)来管理这些房间和走廊中发生的事件。GPIO、EXIT、NVIC、UART 等都是这座大楼中不同的部分,各自承担着不同的功能,共同构成了 STM32 的中断系统。

二、中断的内部结构

2.1 EXTI

中断的框图如下:
在这里插入图片描述
我们可以通过设置寄存器进而来设置指定的引脚接到exti中断上
在这里插入图片描述
比如我们可以设置EXTI0这四位寄存器来设置哪个引脚有EXIT,通过指定的值
比如:设置PA[X]我们要使用0x0000
在这里插入图片描述
如果我们设置0000,他就有下面这样的情节
在这里插入图片描述
比如说,PA0接上一个开关
在这里插入图片描述

你可以去配置是按下中断还是松开时中断,在EXTI这里。
你可以去配置触发方式:

  1. 上升沿触发
  2. 下降沿触发
  3. 双边沿触发

我们还要去使能EXTI,使能他是否能发给下一级的NVIC

触发方式

在这里插入图片描述
上升沿触发就是从低电平变成高电平
下降沿触发就是从高电平变成低电平
双边沿就是上升和下降都触发

2.2 NVIC

NVIC:Nested vectored interrupt controller,嵌套向量中断控制器。
在这里插入图片描述
在上面这个图中,有这么多中断,比如EXTI,UART串口等等
NVIC就是去控制这些中断谁先得到cpu的执行
我们可以配置里面的优先级
我们还可以进一步使能,是否传递给CPU

2.3 cpu与中断

cpu中有一个总开关,我们可以去配置CPU让他处理中断/紧张处理中断

cpu是怎么处理中断的?
在NVIC中,有一个向量表,里面存储着这些中断函数的地址,当CPU检测到中断,NVIC会发一个id给CPU,然后根据id,使用id,在NVIC的向量表里找到对应项,然后调用函数

2.4 外部中断控制器框图

在这里插入图片描述
PA0进来,其中Edge detect circuit为边缘检测电路
在这里插入图片描述
他就可以去检测上升下降沿了

上升沿触发选择寄存器

在这里插入图片描述
其中bit0如果写入1的话就代表使能上升沿触发
在这里插入图片描述
如果是0就是静止。那么对于下降沿也是一样的

屏蔽/使能寄存器

在这里插入图片描述
以EXTI0为例子,我们可以写bit0,来屏蔽(写0)/使能(写1)

等待处理寄存器

在这里插入图片描述
如果某一个EXTI发生了,在他对应的bit位会设置成1
比如EXTI0发送了,那么这个寄存器的bit0会设置成1表示中断已经发生了

2.5 中断优先级

在 NVIC 里,对于每一个中断,都有一个 8 位的寄存器被用来表示它的优先级。这个 8
位的寄存器,被分为 2 部分,分别表示:分组优先级(也叫抢占优先级)、子优先级。

分组优先级被用来判断:当前正在处理的中断,能否被打断。比如当前正在处理 EXT0
中断,它的分组优先级为 3;如果这时候发生了 EXT1 中断,它的分组优先级为 4(数值越
高,优先级越低),那么 EXT1 的中断就无法打断 EXT0,等 EXT0 的中断处理完毕,EXT1 的
中断才能被处理。但是,如果 EXT1 的分组优先级为 2,那么当前的 EXT0 中断就被“抢占”,
先执行 EXT1 的中断处理函数,再继续执行“被抢占的 EXT0”中断函数。
子优先级被用来判断:两个中断同时发生时,谁先被处理。还是以 EXT0、EXT1 为例,
如果它们同时发生了,那么分组优先级高的中断先被处理;如果分组优先级相同,那么子
优先级高的先被处理;如果连子优先级也相同,那么编号小的 EXT0 先被处理。
注意:如果 EXT0、EXT1 的分组优先级相同,是不会发生“抢占”的。比如 EXT0 中断
正在被处理,EXT1 紧接着被触发了,即使 EXT1 的子优先级高于 EXT0,EXT1 也不会抢占
EXI0。当 EXT0 被处理完毕,才轮到 EXT1 被处理。


总结

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

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

相关文章

STM32F1 - 系统时钟SysTick

SysTick 1> SysTick硬件框图2> SysTick的时钟源3> 1ms定时_中断方式4> 思考:无符号数 0 - 255 ?相关资料 1> SysTick硬件框图 SysTick属于Cotex-M3,是CPU外设; SysTick: 位宽24bit, 递减计数,自动重装…

Matplotlib plt.plot数据可视化应用案例

Matplotlib 是 Python 中一个非常流行的绘图库,它允许用户创建各种静态、动态、交互式的图表和可视化。plt.plot() 是 Matplotlib 中用于绘制二维数据的基本函数。 下面是一个使用 plt.plot() 的简单数据可视化应用案例: 案例:绘制正弦和余…

让你的资金运动起来,金钱的聪明处理方式

一、教程描述 本套教程主要讲解了金融思维和财务思维,常见投资工具的实操技巧,资产配置方案的制定方法,等等,将会重构你现有的投资观念,提升你认知的宽度和深度,可以轻松读懂财经新闻,不仅学会…

spring boot3登录开发-2(1图形验证码接口实现)

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途。 目录 前置条件 内容简介 图形验证码接口实现 导入糊涂工具依赖 接口分析 编写验证码接口 测试验证码接口 前置条件 …

2024年通信安全员ABC证证模拟考试题库及通信安全员ABC证理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年通信安全员ABC证证模拟考试题库及通信安全员ABC证理论考试试题是由安全生产模拟考试一点通提供,通信安全员ABC证证模拟考试题库是根据通信安全员ABC证最新版教材,通信安全员ABC证大纲整理…

【Linux 04】编辑器 vim 详细介绍

文章目录 🌈 Ⅰ 基本概念🌈 Ⅱ 基本操作1. 进入 / 退出 vim2. vim 模式切换 🌈 Ⅲ 命令模式1. 光标的移动2. 复制与粘贴3. 剪切与删除4. 撤销与恢复 🌈 Ⅳ 底行模式1. 保存文件2. 查找字符3. 退出文件4. 替换内容5. 显示行号6. 外…

ElementUI Form:Cascader 级联选择器

ElementUI安装与使用指南 Cascader 级联选择器 点击下载learnelementuispringboot项目源码 效果图 el-cascader.vue&#xff08;Select选择器&#xff09;页面效果图 项目里el-cascader.vue代码 <script> let id 0; export default {name: el_cascader,data() {re…

练习:鼠标类设计之2_类和接口

前言 续鼠标类设计之1&#xff0c;前面解决了鼠标信号问题&#xff0c;这里解决显示问题 引入 鼠标伴随操作系统而生&#xff0c;考虑在屏幕上怎样显示 思路 1>鼠标显示是一个动态效果&#xff0c;所以需要一个“动态效果类”对象&#xff0c;添加进鼠标类的属性里。 在面…

线性代数的本质 2 线性组合、张成的空间、基

基于3Blue1Brown视频的笔记 一种新的看待方式 对于一个向量&#xff0c;比如说&#xff0c;如何看待其中的3和-2&#xff1f; 一开始&#xff0c;我们往往将其看作长度&#xff08;从向量的首走到尾部&#xff0c;分别在x和y上走的长度&#xff09;。 在有了数乘后&#xff0…

Netty中的适配器、Handler共享和资源管理

ChannelHandler的适配器 有一些适配器类可以将编写自定义的ChannelHandler所需要的工作降到最低限度&#xff0c; 因为它们提供了定义在对应接口中的所有方法的默认实现。因为有时会忽略那些不感兴趣的 事件&#xff0c;所以Netty提供了抽象积累ChannelInboundHandlerAdapter(…

17.3.1 像素处理

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 17.3.1 像素处理 C#处理图像&#xff0c;主要使用到Bitmap 类的 GetPixel方法和SetPixel方法。 Bitmap.GetPixel 方法&#xff1a…

OpenCV 4基础篇| OpenCV简介

目录 1. 什么是OpenCV2. OpenCV的发展历程3. 为什么用OpenCV4. OpenCV应用领域5. OpenCV的功能模块5.1 基本模块5.2 扩展模块5.3 常用函数目录 1. 什么是OpenCV OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它…

BUGKU-WEB bp

题目描述 题目截图如下&#xff1a; 进入场景看看&#xff1a; 解题思路 提示说&#xff1a;弱密码top1000&#xff1f;z???(爆破?)先看看源码有没有提示 相关工具 Burp Suit 爆破top1000字典&#xff0c;点击下载 解题步骤 随便测试账号密码admin、admin 得到提…

【AIGC】Stable Diffusion之模型微调工具

推荐一款好用的模型微调工具&#xff0c;cybertron furnace 是一个lora训练整合包&#xff0c;提供训练 lora 模型的工具集或环境。集成环境包括必要的依赖项和配置文件、预训练脚本&#xff0c;支持人物、二次元、画风、自定义lora的训练&#xff0c;以简化用户训练 lora 模型…

【刷题】牛客— NC21 链表内指定区间反转

链表内指定区间反转 题目描述思路一&#xff08;暴力破解版&#xff09;思路二&#xff08;技巧反转版&#xff09;思路三&#xff08;递归魔法版&#xff09;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&…

LV.23 D2 开发环境搭建及平台介绍 学习笔记

一、Keil MDK-ARM简介及安装 Keil MDK&#xff0c;也称MDK-ARM&#xff0c;Realview MDK &#xff08;Microcontroller Development Kit&#xff09;等。目前Keil MDK 由三家国内代理商提供技术支持和相关服务。 MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备…

ESP8266 常用AT指令

一、ESP8266的AT指令要点、常见错误 AT指令要大写;以"\r\n"作结尾;串口通信&#xff0c;115200-None-8-1;支持2.4G频段&#xff0c;不支持5G频段 &#xff08;如果用手机创建热点&#xff0c;注意选择2.4G&#xff09;不支持中文的wifi名称工作模式&#xff0c;上电…

选择排序和快速排序(1)

目录 选择排序 基本思想 选择排序的实现 图片实现 代码实现 快速排序 基本思想 快速排序的实现 图片实现 代码实现 选择排序 基本思想 每一次从待排序的数据元素中选出最小&#xff08;最大&#xff09;的元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部…

网络原理-TCP/IP(7)

目录 网络层 路由选择 数据链路层 认识以太网 以太网帧格式 认识MAC地址 对比理解MAC地址和IP地址 认识MTU ARP协议 ARP协议的作用 ARP协议工作流程 重要应用层协议DNS(Domain Name System) DNS背景 NAT技术 NAT IP转换过程 NAPT NAT技术的优缺点 网络层 路由…

《Go 简易速速上手小册》第4章:接口与抽象(2024 最新版)

文章目录 4.1 接口的定义与实现 - Go 语言的多面手4.1.1 基础知识讲解4.1.2 重点案例&#xff1a;动物乐队功能描述实现代码 4.1.3 拓展案例 1&#xff1a;通用支付系统拓展案例 1&#xff1a;通用支付系统功能描述实现代码 4.1.4 拓展案例 2&#xff1a;动物园管理器拓展案例 …