STM32中断简介

news2024/12/21 21:39:55

中断系统

        中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行;

        以上是中断的定义,对于外部中断来说,可以是引脚电平发生了变化;对于定时器来说,可以是定时的时间到了,对于串口通信来说,可以是接收到了数据;这些都是需要CPU暂停当前正在运行的程序,转而去处理中断程序;

        使用中断系统主要是为了提高主程序运行的效率,否则程序要一直循环的去检测有没有对应事件的发生;

        中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源

        中断优先级是可配置的,根据自己的需求设置对应的优先级;

        中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回;

        中断嵌套是为了照顾非常紧急的中断,是由中断优先级决定的;

中断执行流程

中断来了,主程序需要立即暂停,程序由硬件电路控制,自动跳转到中断程序中; 暂停的地方称为断点,中断执行前,会对程序现场进行保护,中断执行后再还原现场(这里联想了一下,线程或者进程切换的开销中,就有保存程序当前进程/线程的运行状态比如寄存器信息等,往下深入想一下,进程/线程切换也是中断PendSV去触发)

STM32中断简介

        68个可屏蔽中断通道,包含EXTI、TIM、ADC、USART、SPI、I2C、RTC等多个外设;具体型号可能没有这么多,还是要参考手册为准;

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

       灰色的部分是系统内核的中断,在实际的项目中会经常要用到的,引入系统之后,比如FreeRTOS就需要配置这些中断,用来处理系统运行中出现的错误;

        其他的是一些外设中断;

 

        中断向量表,中断发生后硬件电路能控制跳转到固定地址,但是中断函数是编译在编译时才能确定地址的,所以就可以在跳转到的固定地址里再加一条跳转指令,跳转到中断函数,这一块连续的跳转指令,被称为中断向量表;

NVIC基本结构

NVIC是一个内核外设,用来辅助CPU处理外部中断的; NVIC有很多输入口,但是只有一个输出口,根据中断优先级分配中断的先后顺序,CPU无需关注中断的先后顺序,只要处理就行;n表示一个外设可能同时占有多个中断通道;

NVIC优先级分组

        NVIC的中断优先级由优先级寄存器的4位(0~15)决定,这4位可以进行切分,分为高n位的抢占优先级和低4-n位的响应优先级
        抢占优先级高的可以中断嵌套,响应优先级高的可以优先排队,抢占优先级和响应优先级均相同的按中断号排队

        数值越低优先级越高

        NVIC有两种优先级,一种是响应优先级,这个决定你在中断队列中排队的位置,高优先级的可以插队到低优先级的前面;一种是抢占优先级,抢占优先级高的可以直接打断低优先级的中断,形成中断嵌套,如果低的话就在外面乖乖排队(按着响应优先级);每次中断响应时都会比较这两个优先级,两个优先级同时起作用; 如果抢占优先级和响应优先级都一样的情况下,就按着中断号来决定谁先响应;


 

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

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

相关文章

【Linux】JREE项目部署与发布

目录 一.jdk安装配置 1.1.传入资源 1.2. 解压 1.3. 配置 二.Tomcat安装 2.1.解压开启 2.2. 开放端口 三.MySQL安装 3.1.解压安装 3.2.登入配置 四.后端部署 今天就到这里了哦!!希望能帮到你哦!!! 一.jdk…

半导体(芯片)制造工艺流程简单说

半导体行业是国民经济支柱性行业之一,是信息技术产业的重要组成部分,是支撑经济社会发展和保障国家安全的战略性、基础性和先导性产业,其发展程度是衡量一个国家科技发展水平的核心指标之一,属于国家高度重视和鼓励发展的行业。 …

ant design pro of vue怎么使用阿里iconfont

一 使用离线iconfont 首先需要生成图所有图标对应的js文件。如下图所示,将生成的js代码复制,在项目中创建一个js文件,将代码粘贴进去。这里我将js文件放在了src/assets/iconfont下面 然后,在main.js中引入文件,并进…

强化IP地址管理措施:确保网络安全与高效性

IP地址管理是网络安全和性能管理的关键组成部分。有效的IP地址管理可以帮助企业确保网络的可用性、安全性和高效性。本文将介绍一些强化IP地址管理的关键措施,以帮助企业提高其网络的安全性和效率。 1. IP地址规划 良好的IP地址规划是强化IP地址管理的基础。它涉及…

【操作系统】考研真题攻克与重点知识点剖析 - 第 2 篇:进程与线程

前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术…

基于SSM框架的管理系统-计算机毕设 附源码 23402

基于SSM框架的管理系统 摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。在目前的形势下,无论是从国家到企业再到家庭,计算机都发挥着其不可替代的作用,可以说…

【洛谷 P1012】[NOIP1998 提高组] 拼数 题解(贪心算法+字典序排序)

[NOIP1998 提高组] 拼数 题目描述 设有 n n n 个正整数 a 1 … a n a_1 \dots a_n a1​…an​,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。 输入格式 第一行有一个整数,表示数字个数 n n n。 第二行有 n n …

mac 安装 selenium + chrome driver

前言 使用 selenium 模拟浏览器渲染数据,需要依赖各浏览器的驱动才能完成,因此需要单独安装chrome driver 查看本地 chrome 浏览器的版本 可以看到我这里已经是 arm 架构下最新的版本了 下载对应的 chrome driver 访问下面的地址: Chrome…

集合贴3——智能客服系统

基础课17——智能客服系统-CSDN博客文章浏览阅读56次。近年来,实体客服机器人开始出现在银行办公厅、电信商务厅等场合,形成了网络智能客服、电话智能客服、实体客服机器人综合智能客服系统,这初步形成了一种新的产业形式。https://blog.csdn…

Verilog刷题[hdlbits] :Always nolatches

题目:Always nolatches Suppose you’re building a circuit to process scancodes from a PS/2 keyboard for a game. Given the last two bytes of scancodes received, you need to indicate whether one of the arrow keys on the keyboard have been pressed.…

Matlab使用cftool进行曲线拟合

第一步,导入要拟合的输入和输出数据 导入excel时,如果作为列矢量导入,则会将excel的数据按列导入,并且,默认将第一行的变量名作为每一列的矢量名。 第二步,打开插件curve fitting 在应用程序里打开&#…

MathType公式编辑器7.4.4最新中文版下载

不得不承认MathType公式编辑器是一个强大的数学公式编辑器,专门为理科生准备,MathType数学公式编辑器用于编辑数学试卷、书籍、报刊、论文、幻灯演示等文档,能够帮助使用者快速的在各种文档中插入符号和公式,多复杂的公式都可轻松…

金融工作怎么做?低代码如何助力金融行业

10月30日至31日,中央金融工作会议在北京举行。金融是国民经济的“血脉”,是国家核心竞争力的重要组成部分。会议指出,党的十八大以来,在党中央集中统一领导下,金融系统有力支撑经济社会发展大局,坚决打好防…

小白高效自学-网络安全(黑客技术)

网络安全零基础入门学习路线&规划 初级 1、网络安全理论知识(2天) 了解行业相关背景,前景,确定发展方向。 学习网络安全相关法律法规。 网络安全运营的概念。 等保简介、等保规定、流程和规范。(非常重要&#x…

MarkdownPad2, CSDN及有道云笔记对数学公式的支持

MarkdownPad2, CSDN及有道云笔记对数学公式的支持 MarkdownPad2的安装 下载并安装MrakdownPad2软件,下载地址安装awesomium_v1.6.6_sdk_win, 下载地址安装支持公式编辑的插件,注意,在MarkdownPad2的 Tools > Options > Ad…

Qt/C++开发经验小技巧286-290

国内站点:https://gitee.com/feiyangqingyun 国际站点:https://github.com/feiyangqingyun 很多时候项目越写越大,然后就可能遇到,明明之前很简单的一段代码,运行的好好的,就那么几行几十行,为何…

VxLAN 网络,看这一篇就够了!

你们好,我的网工朋友。 VLAN作为传统的网络隔离技术,是网工们工作中离不开的技术,这已经给你说过太多。 今天想跟你聊的是VXLAN。 一个字母的区别,你分得清VLAN和VXLAN吗,他们有啥区别?你知道VXLAN到底是…

Python Opencv实践 - 车牌定位(纯练手,存在失败场景,可以继续优化)

使用传统的计算机视觉方法定位图像中的车牌,参考了部分网上的文章,实际定位效果对于我目前使用的网上的图片来说还可以。实测发现对于车身本身是蓝色、或是车牌本身上方有明显边缘的情况这类图片定位效果较差。纯练手项目,仅供参考。代码中im…

gorm的自动化工具gen_已设置图床

gorm的自动化工具gen 官方 https://gorm.io/zh_CN/gen/假设数据库结构如 这里使用gen-tool 安装 go install gorm.io/gen/tools/gentoollatest用法 gentool -hUsage of gentool:-c string配置文件名、默认值 “”、命令行选项的优先级高于配置文件。 -db string指定Driver…

【机芯智能】智能公元(语音模块)

语音模块配置 进入语音模块智能公元官网,配置词条和识别后的串口输出指令. 记录下相关指令以及上图的识别词条,方便SDK烧写后的调试 SDK烧写 4. SDK 先和电脑调试助手配合,验证数据