【STM32入门】4.1中断基本知识

1.中断概览

在开展红外传感器遮挡计次的实验之前,有必要系统性的了解“中断”的基本知识.

中断是指:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行。初看这里会感觉有些奇怪,我正在干一件事情,你是凭什么让我停下来去干另一件事,然后干完之后再返回来去完成我本来在干的事情呢?这里就涉及到一个概念,叫做“优先级”。

优先级:当有多个中断源同时申请中断的时候,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。假设场景在幼儿园,老师是CPU,本来正在上课,有个小朋友喊“老师我尿裤裆了”,这件事的优先级高于上课,于是老师中断了上课优先去处理尿裤裆的小朋友。但如果遇到了优先级更高的事情怎么办?例如,这个小朋友尿裤裆了,但是另一个小朋友拉裤裆了,而且拉的是稀的,已经流到地上了。

中断嵌套:前面这个恶心的例子中,小朋友尿裤子是一个中断事件,让老师停止了上课,但拉裤裆是一个中断优先级更高的事件,老师不得不先处理拉裤裆的小朋友。这种在执行中断过程中,又来了一个优先级更高的中断的过程,叫做中断嵌套。

2.STM32的中断 

STM32中包含了68个可屏蔽中断通道,•包含EXTITIMADCUSARTSPII2CRTC等多个外设。这些中断都通过NVIC统一管理,先看看内部逻辑结构,为什么要用到NVIC?

从上图可以看出,STM32涉及中断的外设都是先链接到NVIC,最后在NVIC中经过优先级排序,再决定传哪个中断信号给CPU。这是一种减少CPU运算量的设计方法,试想,如果一个学校里面,连进出门禁、学生请假等等一系列的所有事情都需要校长亲自去管,那这个校长就不用做其他事情了。在这里CPU也是同样的,让他专注于运算,NVIC做他的秘书。 

使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组,进一步设置抢占优先级和响应优先级。

2.1抢占优先级和响应优先级

在上面的图里可以看到,NVIC的优先级一共有0-15个等级,这里需要注意的是很多教程和书里会有这么一句话“NVIC的中断优先级由优先级寄存器的4位(0~15)决定”,试一试2进制的4位最小和最大可以表示什么十进制数字,0000--0,1111--15。这样就可以理解了,总共有0-15共计16个优先级排序,在stm32的底层是用4位2进制数来表达这些优先级,暂且这么理解。

这4位二进制数可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队。

上面这个表其实很好理解,反正总共只有4位二进制数可以用来表达优先级,还要在这4位里面分个组,一部分用来表达抢占优先级(小朋友拉裤裆,这事很上头是最优先的),一部分用来表达响应优先级(小朋友尿裤裆,忍一忍没准自己干了,不是太上头)。

假设我要用这4位二进制中的2位去表达抢占优先级,那就是000-111,即0-7总共可以容纳八个小朋友拉裤裆,用4位二进制中的其余2位去表达响应优先级,那也是000-111,即0-7,总共可以容纳八个小朋友尿裤裆。总之,老师一回就只能处理16个小朋友的“惊喜”至于是拉裤裆还是尿裤裆,你们自己选。 这样的分组总共有5中,就是表格第一列的分组0~分组4.

2.2EXTI

全称是Extern Interrupt外部中断,这是专门用于监测外部发起中断的模块。EXTI可以监测指定GPIO口的电平信号,当其指定的GPIO口产生电平变化时,EXTI将立即向NVIC发出中断申请,经过NVIC裁决后即可中断CPU主程序,使CPU执行EXTI对应的中断程序。

支持的触发方式有:上升沿/下降沿/双边沿/软件触发。

支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断通道数:16GPIO_Pin,外加PVD输出、RTC闹钟、USB唤醒、以太网唤醒

触发响应方式:中断响应/事件响应

上面硕了EXTI主要是监测引脚输入的外部中断信号,但是STM32引脚那么多,到底选择哪个去监测是需要先配置的,这里就需要用到AFIO,整体的EXTI结构如下图:

AFIO的功能是引脚的复用和重定义,在中断部分,AFIO的主要作用是中断引脚的选择,别的先不管。 EXTI的内部逻辑框图如下:

这个逻辑比较简单,用与门和或门来选择信号,配合中间的寄存器来选择中断信号的发送。具体内容可以先不深究,知道这东西在哪儿,要用回来翻看就是了。 

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

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

相关文章

Oracle MongoDB

听课的时候第一次碰到,可以了解一下吧,就直接开了墨者学院的靶场 #oracle数据库 Oracle数据库注入全方位利用 - 先知社区 这篇写的真的很好 1.判断注入点 当时找了半天没找到 看样子是找到了,测试一下看看 id1 and 11 时没有报错 2.判断字段…

JMeter下载与安装

文章目录 前言一、安装java环境(JDK下载与安装)二、JMeter下载三、JMeter安装1.解压缩2.配置环境变量 四、JMeter启动(启动成功则代表JMeter安装成功)五、JMeter汉化(将JMeter修改成中文)1.方法一&#xff…

深圳锐科达IP网络广播系统

深圳锐科达IP网络广播系统 网络音频广播系统是一种基于TCP/IP网络的纯数字音频广播系统。该网络音频广播系统在物理结构上与标准IP网络完全集成。它不仅真正实现了基于TCP/IP网络的数字音频的广播、直播和点播,而且利用TCP/IP网络的优势,突破了传统模拟广…

DeepStream--调试Gstreamer

DeepStream是基于Gstreamer开发的。有时候需要在Gstreamer加日志,比如想在rtpjitterbuffer里加日志。 首先,执行gst-inspect-1.0 rtpjitterbuffer命令。 从结果中可以看到,rtpjitterbuffer插件的源码是gst-plugins-good,版本是1…

Tomcat的结构分析和请求处理原理解析

目录 Tomcat服务器?Tomcat结构处理请求流程Tomcat作用其他的web服务器 Tomcat服务器? 我们经常开口闭口“服务器”、“服务器”的,其实“服务器”是个很容易引发歧义的概念 其实,Tomcat服务器 Web服务器 Servlet/JSP容器&#…

最新Redis7主从复制(保姆级教程)

前提准备:三台云服务器(吐血消费,点赞回血)也可以使用虚拟机创建三台,但是我搞了一天也连接不上,要是又可以连接上的大家可以教我一下,也可以参考一下或者大家可以参考一下这个大佬的配置&#…

人工智能与天文:技术前沿与未来展望

人工智能与天文:技术前沿与未来展望 一、引言 随着科技的飞速发展,人工智能(AI)在各个领域的应用越来越广泛。在天文领域,AI也发挥着越来越重要的作用。本文将探讨人工智能与天文学的结合,以及这种结合带…

大数据Doris(三十六):Duplicate 模型(冗余模型)介绍

文章目录 Duplicate 模型(冗余模型)介绍 一、创建doris表 二、插入数据

PR模板,复古怀旧电影效果视频制作PR项目工程文件

Premiere复古怀旧电影效果视频制作pr模板项目工程文件下载 这个PR模板以复古城市印象电影质感为特色,结合了电影和数字故障效果。包含6个场景。可以编辑文本、添加媒体和自定义颜色。包含视频教程。4K版本。不需要任何插件。 软件支持:PR2022 | 分辨率&a…

DBA面试题

Oracle体系结构 (1)、Oracle实例内存中包含哪些部分? 答: sga与pga sga:是一组共享的内存区域,包含数据字典缓存、库缓存、重做日志缓冲区 Pga:为每个服务器进程分配的非共享内存,存储会话状态和私有SOL工作区 在Oracle数据库中&…

StarCCM+ 导入STL几何模型进行仿真

使用 StarCCM 进行仿真时,通常都是用 3D-CAD Model 导入 CAD 类型的几何模型。但对于一些特殊情况,例如通过三维重建等方法获得的几何模型是 STL 文件而非 CAD 文件,这种情况下可以通过 Import Surface Mesh 的方法导入 STL 文件进行仿真&…

ubuntu pycharm 死机,如何重启

1. 找出pycharm 进程的id 进入命令行: ps -ef 是查看当前运行的进程 值输入 ps -ef 会返回所有当前执行的进程,太多了,过滤一下,找到 pycharm : ps -ef | grep pycharm 2. 使用 kill -s 9 来杀死进程 如图所是,…

文字转语音自动合成系统源码:让你的语音自动转成文字 附带完整的搭建教程

人工智能技术的不断发展,语音识别和自然语言处理技术已经逐渐成熟。文字转语音自动合成系统就是结合了这两项技术,将文字信息转化为语音输出,为用户提供更加便捷、高效的信息获取方式。这种系统在语音助手、智能客服、教育学习等领域有着广泛…

11月,1Panel开源面板项目收到了这些评论

2023年11月24日,1Panel开源面板项目(https://github.com/1Panel-dev)发布了题为《10月,1Panel开源面板收到了这些评论》的社区评论合集。在该文章的评论区,很多社区用户跟帖发表了自己对1Panel开源项目的使用感受和意见…

二叉搜索树--二叉排序树

特性 搜索依据的关键码&#xff0c;所有节点的关键码互不相同非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。左 < 根 < 右&#xff0c;左右都是二叉排序树二叉搜索树-中序遍历从小到大有序 创建二叉搜…

精通Spring整合MyBatis:架构师的实践指南

引言&#xff1a; 介绍Spring和MyBatis的基本概念及其在Java应用开发中的重要性。 整合原理 在整合Spring和MyBatis时&#xff0c;关键在于理解两者是如何协同工作的。Spring框架主要负责管理Java应用的生命周期和依赖注入&#xff0c;而MyBatis则专注于数据库操作和映射。 …

c++知识总结

一 细碎知识 1.9 I 1.9.1 inline 参考 C语言中头文件中的 static inline 函数以及 __attribute__((always_inline)) 强制内联展开-CSDN博客https://blog.csdn.net/m0_37616597/article/details/104138980 慎用 inline 内联能提高函数的执行效率,为什么不把所有的函数都定…

高分辨率台阶仪,精准掌控细节测量

什么是台阶仪&#xff1f; 台阶仪是一款超精密接触式微观轮廓测量仪&#xff0c;可以对微米和纳米结构进行膜厚和薄膜高度、表面形貌、表面波纹和表面粗糙度等的测量。 什么是台阶仪分辨率&#xff1f; 台阶仪分辨率是指在台阶仪的测量范围内&#xff0c;仪器能够精确分辨出的…

等保2.0的变化

1法律地位得到确认 《中华人民共和国网络安全法》第21条规定“国家实行网络安全等级保护制度”&#xff0c;要求“网络运营者应当按照网络安全等级保护制度要求&#xff0c;履行安全保护义务”&#xff1b;第31条规定“对于国家关键信息基础设施&#xff0c;在网络安全等级保护…

外包干了2年,技术退步明显...

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…