STM32F4XX NVIC中断优先级理解

在STM32微控制器上使用NVIC进行多中断的管理 在多中断管理中,中断优先级的设置与调度策略非常重要,需要遵循一定的原则和技巧。希望通过本文的介绍,能帮助开发人员更好地理解和使用NVIC进行多中断管理,在实际的嵌入式项目中提高系统的稳定性和实时性。在示例代码中,我们通过使用HAL_NVIC_SetPriority函数设置了外部中断0和外部中断1的优先级,并使用HAL_NVIC_EnableIRQ函数使能了这两个中断通道。使用NVIC_SetPriority函数可以设置中断通道的抢占优先级和响应优先级,使用NVIC_EnableIRQ函数可以使能相应中断。 阅读详情

在STM32的开发中我们时常会用到中断,但是STM32的中断源繁多,也很容易出错,所以反复学习NVIC中断优先管理很有必要。

CM4 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256 级的可编程中断设置。但STM32F407 并没有使用 CM4 内核的全部东西,而是只用了它的一部分。

STM32F4xx 则总共有 101 个中断,包括 10 个内核中断和 91 个可屏蔽中断(外部中断),具有 16 级可编程的中断优先级,而我们常用的就是这 91 个可屏蔽中断。

在这里插入图片描述
PS:这里的外部中断是除了内核中断以外的中断。

STM32F4XX 将中断分为 5 个组,组 0~4。
该分组的设置是由 SCB->AIRCR 寄存器的 bit10-8来定义的。
IP八位寄存器只有IP[90]~IP[0]在使用,并且只有高四位用来设置抢占和响应优先级。这里也就对应了STM32F4XX只有16级可编程的中断优先级。

在这里插入图片描述
关于抢占优先级和响应优先级的理解如图所示:在这里插入图片描述

情况一:在同时发生中断时,因为抢占优先级一样,响应优先级数值越低越优先所以:优先级的情况为 中断1>中断2>中断3;
但是在中断2/3在执行的时候,中断1无法打断,只有中断2/3执行完后才会执行中断1。

情况二:在同时发生中断时,抢占优先级数值越低越优先所以:优先级的情况为 中断1>中断2>中断3;
在中断2/3在执行的时候,中断1可以打断,然后执行完中断1在返回执行中断2/3。

最后我们总结一下中断优先级设置的步骤:

1、系统运行开始的时候设置中断分组。确定组号,也就是确定抢占优先级和响应优先级的 分配位数。在文件 stm32f4xx_hal.c
内部定义函数 HAL_Init 中有调用HAL_NVIC_PriorityGroupConfig 函数进行相关设置,所以我们只需要修改HAL_Init 内部对中断优先级分组设置即可。
2、 设置单个中断的中断优先级别和使能相应中断通道, 使用到的函数主要为 HAL_NVIC_SetPriority 和HAL_NVIC_EnableIRQ。

PS:具体可以参照官方的例程。

STM32F4_时钟系统精讲 当减到0以后,重装载寄存器会重装载到定义的值,也就是回到定义的数值,源源不断的进行减减;,LSI 低速内部时钟供到独立看门狗使用,32KHz,同时接到RTCSEL上,图中梯形形状代表着选择作用,也就是RTC可以选择LSE低速外部时钟使能,也可以选择LSI,在这里,通常选择LSE,因为LSE外接晶振,精度较高;对于CPU来说,时钟的频率越高,其时钟值越小,这里可以理解时钟是一个信号的周期,时钟=1/f,频率越高,时钟越小,也就是单位时间内 CPU 能够做到更多的事,也就是我们常说的CPU运行快; 阅读详情

相关推荐

为什么你的STM32F4中断会触发两次?深入解析EXTI硬件设计差异与应对策略

本文深入分析了STM32F4系列MCU中EXTI中断触发两次的现象,揭示了硬件设计差异导致的根本原因。通过对比STM32F1与F4系列的EXTI控制器、写操作路径和中断清除时序,提供了包括DSB指令、二次写入技术和状态标志法在内的多种实用解决方案,帮助开发者有效应对中断异常问题。

k0l1m2n3o的博客 963

STM32F4中断优先级NVIC管理

一、NVIC中断优先级分组 STM32F4XX/STM32F41XX 共有92个中断,包括10个内核中断和82个可屏蔽中断,具有16级可编程的中断优先级,常用的为82个可屏蔽中断。 10个内核中断 部分可屏蔽中断 中断管理方法: 首先,对STM32中断进行分组,分为组0-4。同时,对每个中断设置一个抢占优先级和一个响应优先级级别。 分组配置是在寄存器SCB->AIRCR中配置,AIRCR的第8、9、10位用来确定分配结果。 抢占优先级&响应优先级的区别: 1.

iiiuuuu的博客 3634

CubeMX配置STM32LL库外部中断全流程:从GPIO到NVIC优先级设置

本文详细介绍了使用STM32CubeMX配置LL库外部中断的全流程,从GPIO设置到NVIC优先级配置。通过实战指南,帮助开发者掌握EXTI中断机制、CubeMX工程创建、中断服务函数实现及调试技巧,特别适合需要高效实时响应的嵌入式应用开发。

prometheus5watch的博客 1079

STM32F4的中断优先级理解

这是本人第一次写博客,将自己学习之后理解到的都记录下来。如有侵权请联系删除。 STM32F4是ARM公司Contex-M4内核的芯片。本身具有256个中断,用于一般项目已经绰绰有余了,STM32并未使用该内核所有的东西,但对我们来说只是会配置就可以了。对于其中断数量只是了解就OK了,如果真的有需要用到其所有数量的中断的大佬,也不会看我的文章了,中断作为单片机最重要的外设之一,其优先级是最重要的,STM32的中断优先级配置主要有以下两个方面 一是中断分组;二是对每一个中断中断设置其抢占优先级和响应优先级。

qq_39129526的博客 2171

STM32F4 NVIC中断优先级分组与抢占机制深度解析

中断优先级是嵌入式实时系统确定性响应的核心机制,其本质是通过硬件支持的抢占式调度实现任务间时序保障。在ARM Cortex-M4内核中,NVIC将8位优先级字段按Priority Grouping动态划分为抢占优先级(Preemption Priority)和子优先级(Subpriority),二者共同决定中断嵌套与同级排队行为。该机制直接支撑高实时性场景如电机控制、通信协议栈与RTOS调度,广泛应用于STM32F4系列MCU开发。理解分组模式(Group 0–4)、优先级数值语义(越小越高)、寄存器映射(

weixin_42186387的博客 41

模拟IC设计笔记:拆解一个经典的时钟占空比校正(DCC)电路模块,从理论到SPICE仿真

本文深入解析了时钟占空比校正(DCC)电路在模拟IC设计中的关键作用,特别是在高速ADC应用中。通过晶体管级拆解,详细介绍了基于电荷泵和积分器的模拟反馈型DCC电路设计,包括占空比检测、误差放大与校正执行单元的实现。文章还提供了SPICE仿真验证方法,确保电路在100MHz时钟下的稳定性和性能。

weixin_33725722的博客 425

STM32F4x_中断配置

STM32F40xx/STM32F41xx 的 92 个中断里面,包括 10 个内核中断和 82 个可屏蔽中断,具有 16 级可编程的中断优先级。

Mertrix-ITCH 583

dreamerv3复现教程

由于dreamerv3存在很多版本冲突问题,所以很难直接使用和复现。

无人机飞啊飞啊飞 2835

STM32F4设置NVIC中断优先级分组

中断管理方法: 首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。 分组配置是在寄存器SCB->AIRCR中配置: 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。抢占优先级相

Justice Gao 1万+

西门子1200与FANUC机器人Profinet通讯

近期在做发那科FANUC的通讯,会吧CC-LINK、Profibus-DP、Profinet I/O、DeviceNet、EtherNet/IP这些常用通讯做成文档发上来,大家喜欢的话可以关注 注:做对应的通讯,在机器人控制柜都需要安装对应的板卡以及软件功能 PLC项目已经归档,只需要恢复就可以看到。对应Profinet通讯的GSD文件也都在博文最后有连接 机器人柜子:R-30IB Mate 机器人主体:M-10IA 12 一、硬件介绍 机器人Profinet I/O通讯板卡:...

七兔自习室 2万+

分析方法—temporal receptive field(TRF)

总结来说,时间感受野其实就是一个 filter!课程中的描述—.(使用时间感受野与刺激进行卷积来描述)时间感受野一般是听觉计算中使用的,在视觉中,有另一种分析叫做空间感受野(spatial receptive fields)。回归权重(Regression weights)是指在回归分析中用于估计自变量与因变量之间关系的权重或系数。回归分析是一种统计方法,用于建立自变量与因变量之间的关联模型,并通过拟合数据来估计模型中的参数。在简单线性回归中,只有一个自变量与一个因变量之间的关系被建模。

m0_51474171的博客 1602

STM32F4中断学习

目录 目录 前言 STM32F4中断 NVIC简介 优先级定义 NVIC_InitTypeDef结构体 EXTI外部中断/事件控制器 EXTI功能框图 EXTI初始化结构体详解 IO口外部中断的一般步骤 总结 链接地址 前言 STM32F4中断 NVIC简介 NVIC是嵌套向量中断控制器,控制着整个芯片中断相关的功能,它跟内核紧密耦合,是内核里面的一个...

simon曦的博客 7559

芯片硅前验证技术与驱动工程师实战指南

硅前验证是芯片开发流程中的关键环节,通过pre-silicon simulation等技术手段在流片前验证设计正确性。其核心技术包括软件仿真、FPGA原型验证和硬件仿真器解决方案,涉及Linux驱动开发、芯片架构理解和波形分析等核心技能。作为连接芯片设计与系统集成的桥梁,硅前验证能早期发现设计缺陷,节省数百万美元流片成本。以Cadence Palladium为代表的硬件仿真器,通过专用服务器系统实现比纯软件方案快100-1000倍的仿真速度,为驱动工程师提供完整的外设模型验证环境。掌握硅前验证技术可显著提升

weixin_42522857的博客 323

(十二)STM32——NVIC中断优先级管理

今天我们要学习的是NVIC中断管理,CM4 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256 级的可编程中断设置。但 STM32F4 并没有使用 CM4 内核的全部东西,而是只用了它的一 部分。STM32F40xx7总共有 92 个系统运行开始的时候设置中断分组。学习目标 主要内容 中断分组 优先级 寄存器 ISER ICER ISPR ICPR IABR IP...

weixin_66578482的博客 2484

深度学习的卷积神经网络的煤矸石识别

在本博文中,我们提出了一种基于深度学习的煤矸石检测与识别系统,该系统采用YOLOv8算法对煤矸石进行检测和识别,实现对图片中的煤矸石进行准确识别。1.项目需求对煤矸石进行检测与识别,系统将识别出图片中的克服小块煤矸石漏检的缺陷。 2.项目实现 通过调研,本项目最终使用yolov8模型作为目标检测的模型, YOLOv8 旨在快速、准确且易使用,使其成为广泛的物体检测、图像分割和图像分类任务的极佳选择。 1.数据集:格式为jpg的3091张煤矸石图片2.YOLOv8环境配置yolo检测网络包括24个卷积层

2201_75355700的博客 792

《QGIS快速入门与应用基础》161:面要素顶点编辑与形状调整

本文系统讲解了QGIS中面要素顶点编辑与形状调整的核心操作。首先明确了顶点编辑的适用场景与核心概念,强调需满足图层类型、编辑模式、要素选择等六大前提。详细介绍了编辑顶点工具(F2键)的激活路径及配套辅助工具,通过耕地地块修正案例,分步骤演示顶点移动、添加(双击/工具栏)、删除(Delete键)三大基础操作。同时提供捕捉工具开启、画布缩放等实用技巧,帮助用户高效完成面要素的精细化调整,解决实际工作中的形状偏差问题。全文图文结合,步骤清晰,适合GIS新手快速掌握面要素编辑的核心技能。

LuckyHanMo的博客 481

STM32外部中断与(NVIC)中断优先级管理

STM32外部中断与中断优先级管理(手册/代码/解释)

xgbg_的博客 3585

LPDDR6与LPDDR5 ZQ Calibration技术探讨

LPDDR6与LPDDR5 ZQ Calibration技术探讨

zilan23的博客 1099

使用STM32CubeMX配置和优化NVIC中断优先级

在"Configuration"选项卡中,找到"NVIC Settings"并展开,您可以看到所有中断通道的列表。对于CubeMX生成的代码,您可以在stm32f4xx_hal_conf.h或者stm32f4xx_hal_msp.c中找到中断优先级的配置代码。一般来说,主要的中断处理函数可以分配更高的优先级以确保及时响应,次要的中断处理函数分配较低的优先级。在"Project"菜单下选择"Generate Code",选择你所使用的集成开发环境(例如Keil或IAR),然后点击"OK"按钮生成代码。

weixin_66608063的博客 2383

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

STM32F4学习笔记——NVIC 中断优先级管理

CM4 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有256 级的可编程中断设置。但 STM32F4 并没有使用 CM4 内核的全部东西,而是只用了它的一部分: STM32F40xx/STM32F41xx 总共有 92 个中断, STM32F42xx/STM32F43xx 则总共有 96 个中断,以下仅以 STM32F40xx/41xx 为例讲解。 STM3...

weixin_44115082的博客 1175

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

STM32外部中断---EXTI+NVIC的理解

STM32中断_理解整理 用F103,到F429.中断上,一直不明白它的各种联系,虽然用库实现过,但如履雾中. 结合了原子哥,野火的例程,还参考了大量的网上各高人的讲解,慢慢整理记录,希望理解更起作用. ...

zhouml_msn的博客 1053

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

STM32第四章-外部中断管理

STM32F4 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32F4 的强大之处。STM32F429 的中断控制器支持 22个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。 EXTI故名思义EX表外出,I表示Intrrupt所以合起来就是外部中断。 STM32F429的22个外部中断为: 我们这里只看IO口的16个外部中断:EXTI 线 0~15...

果果小师弟的博客 2290

STM32 详细理解一下中断的原理过程

而NVIC是STM32的内部中断外设,是STM32的内部中断机制,NVIC的输入是外部中断等一系列中断信号,NVIC主要就是在接收到这些外部中断信号之后,反馈输出,对中断信号进行处理。2.边缘检测电路,它会根据上升沿触发选择寄存器(EXTI_RTSR)和下降沿触发选择寄存器(EXTI_FTSR)对应的设置来控制信号的触发,边缘检测电路以输入线作为作为信号的输入端,如果检测到信号的跳变就输入有效信号1给编号3电路,否则输出无效信号0.嵌套向量中断控制器,控制着整个芯片中断的相关功能,它跟内核是紧密耦合的。

m0_62230811的博客 3579

stm32 SCB->AIRCR 寄存器和中断优先级寄存器使用理解

参考: Cortex M3权威指南(中文).pdf STM32F4xx中文参考手册.pdf STM32F4开发指南-寄存器版本_V1.1.pdf https://blog.youkuaiyun.com/rng_uzi_/article/details/90762767 记住:抢占和响应的值越小级别越高。 首先stm32的中断有240个,中断优先级分两级抢占和响应。两种级别,规则如下,需要记住 高...

f的博客 1万+

深入理解STM32中断控制器:NVIC的工作原理与配置方法

通常有四种模式可供选择:0位优先级分组(3位抢占优先级,1位响应优先级)、1位优先级分组(2位抢占优先级,2位响应优先级)、2位优先级分组(1位抢占优先级,3位响应优先级)和 3位优先级分组(4位抢占优先级,0位响应优先级)。通过编程控制NVIC相应的寄存器,可以实现对中断的使能和禁止。NVIC通过中断向量表来存储中断服务函数的地址,当中断发生时,NVIC可以根据中断号查找相应的中断服务函数地址并跳转执行。NVIC能够管理各个中断通道的优先级,响应优先级较高的中断请求,并进行嵌套中断处理。

weixin_66608063的博客 1641

了解STM32中断处理过程:NVIC的向量表和中断优先级规则

其中,NVIC(Nested Vectored Interrupt Controller)是STM32中断控制器的核心模块,负责管理中断请求,分配中断优先级,以及处理中断响应。向量表是一段固定地址的存储区域,存储着每个中断对应的中断服务程序的入口地址,当中断发生时,处理器会根据中断号在向量表中查找相应的中断服务程序的入口地址,并跳转执行。除了中断优先级外,STM32还支持优先级分组的配置,可以根据具体的应用需求来组合抢占优先级和响应优先级的位数,从而更好地管理中断优先级。

weixin_66608063的博客 882
上一篇: STM32F4XX芯片的架构初了解
下一篇: STM32串行通信理解
芯芯泡饭
博客等级 码龄7年 48粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值