【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.hqwc.cn/news/469442.html

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

相关文章

【计算机网络】链路层

透明传输: 指的是链路层首部尾部定位时为防止数据中有相同数据导致错误判定,所以使用转义字符,对于用户察觉不到转义字符的存在。 信道分类: 1.广播信道 广播信道为避免冲突,使用两种方式进行协调,一是信道…

PyTorch深度学习快速入门教程 - 【小土堆学习笔记】

小土堆Pytorch视频教程链接 声明: 博主本人技术力不高,这篇博客可能会因为个人水平问题出现一些错误,但作为小白,还是希望能写下一些碰到的坑,尽力帮到其他小白 1 环境配置 1.1 pycharm pycharm建议使用2020的&…

高中生护眼台灯怎么选?教育部认可护眼灯品牌

随着孩子步入更高的年级,学业压力也会越来越繁重,随之带来的也是更长时间的用眼和高近视率。众所周知,高中是孩子学业最繁忙的一段时期,同时也是青少年近视的重灾区,不少学生因为每天过度用眼,再加上缺少户…

MySQL主从环境,主库改端口后,从库如何操作?

主库:mysql-111 从库:mysql-112 主库由3306端口修改成3307后, 从库执行如下命令 mysql> stop slave; mysql> change master to master_port3307; mysql> CHANGE MASTER TO MASTER_HOST192.168.10.111,MASTER_USERbeifen,MASTER_PA…

【Win10 触摸板】在插入鼠标时禁用触摸板,并在没有鼠标时自动启用触摸板。取消勾选连接鼠标时让触摸板保持打开状态,但拔掉鼠标后触摸板依旧不能使用

出现这种问题我的第一反应就是触摸板坏了,但是无意间我换了一个账户发现触摸板可以用,因此推断触摸板没有坏,是之前的账户问题,跟系统也没有关系,不需要重装系统。 解决办法:与鼠标虚拟设备有关 然后又从知…

OpenAI ChatGPT 记忆功能怎么实现?

你的聊天助手现在能“记住”你的对话了! 2月14日凌晨,OpenAI宣布正在测试ChatGPT的新功能——记住用户提问内容,并自由控制内存。这意味着,ChatGPT能帮你记住那些重要的聊天内容,让你的对话更流畅、更自然。 想象一下…

漫漫数学之旅020

文章目录 经典格言数学习题古今评注名人小传 - 尼尔斯玻尔 经典格言 专家就是这样一个人,在一个很狭小的领域里犯下一切可能犯的错误。——尼尔斯玻尔(Niels Bohr) 尼尔斯玻尔,这位量子物理界的巨头,以一句幽默且充满…

第19讲投票帖子明细实现

投票帖子明细实现 投票后 跳转列表页面: uni.navigateTo({url:"/pages/createVoteList/createVoteList"})新建voteDetail页面 投票详情页面 {"path": "pages/voteDetail/voteDetail","style": {"navigationBarTitle…

面试经典150题——串联所有单词的子串(困难)

"Opportunities dont happen, you create them." ​ - Chris Grosser 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 遇见这种可能刚开始没什么思路的问题,先试着按照人的思维来求解该题目。对于一个人来讲,我想要找到 s 字符串中…

论文阅读-面向机器学习的云工作负载预测模型的性能分析

论文名称:Performance Analysis of Machine Learning Centered Workload Prediction Models for Cloud 摘要 由于异构服务类型和动态工作负载的高变异性和维度,资源使用的精确估计是一个复杂而具有挑战性的问题。在过去几年中,资源使用和流…

智能汽车行业产业研究报告:4D成像毫米波雷达—自动驾驶最佳辅助

今天分享的是智能汽车系列深度研究报告:《智能汽车行业产业研究报告:4D成像毫米波雷达—自动驾驶最佳辅助》。 (报告出品方:开源证券) 报告共计:43页 视觉感知最佳辅助——4D 成像毫米波雷达 感知是自动…

证明之缺角正方形网格的铺地砖问题

缺角正方形网格的铺地砖问题 “挑战难题:多米诺骨牌与无法覆盖的方格” 这里有个著名的难题。画八横八纵正方形网格,去掉相对的两个角。你能用多米诺骨牌形状的地砖——每一块正好覆盖两个相邻方格,把剩余部分覆盖吗?我在下图中…