中断NVIC优先级的理解
2024-08-12 来源:cnblogs
使用NVIC时,是为了多个中断分个优先次序
1.进行中断分组
分组函数:void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
假设,要使中断分组为2
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
2.设置中断的优先级别(抢占优先级和子优先级)
中断初始化函数:void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
假设,要设置串口1的中断,同时设置抢占优先级为1,子优先级为2
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口 1 中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1 ;// 抢占优先级为 1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;// 子优先级位 2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道使能
NVIC_Init(&NVIC_InitStructure); //根据上面指定的参数初始化 NVIC 寄存器
对于STM32 NVIC中断优先级管理
由于我的芯片是STM32F103,里面只有60个可屏蔽中断,也就是说只用了ISER[0]和ISER[1](CM3内核ISER共有8个,即ISER[8])
同时,对于中断分组

例如组设置为 3,那么此时所有的 60 个中断,每个中断的中断优先寄存器的高四位中的最高 3 位是抢占优先级,低 1 位是响应优先级。每个中断,你可以设置抢占优先级为 0~7,响应优先级为 1 或 0。抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。
个人理解:由数据的第10~8位确定第几组,后由第7~4位确定抢占优先级和响应优先级,数值越小,优先级越高。
这时需要注意两点:
1、如果两个中断的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行;
2、高优先级的抢占优先级是可以打断正在进行的低抢占优先级
中断的。而抢占优先级相同的中断,高优先级的响应优先级不可以打断低响应优先级的中断;
假定设置中断优先级组为 2,然后设置中断 3(RTC 中断)的抢占优先级为 2,响应优先级为 1。中断 6(外部中断 0)的抢占优先级为 3,响应优先级为 0。中断 7(外部中断 1)的抢占优先级为 2,响应优先级为 0。那么这 3 个中断的优先级顺序为:中断 7>中断 3>中断 6。
上一篇:STM32串口的理解
下一篇:端口复用的理解
- ARM64架构硬件中断处理流程深度剖析
- ARM64硬件中断处理机制深度解析
- 51单片机的中断系统扫盲行动
- 《逗比小憨憨51单片机Proteus仿真系列》第4期单片机的外部中断实验仿真
- 【菜鸟必看】STM32 串口接收不定长数据中断检测相关问题
- 基于STM32CUBEMX驱动低压步进器电机驱动器STSPIN220(3)----定时器中断产生指定数量脉
- STM32中中断标志位与中断挂起位详解:TIM_ClearFlag与TIM_ClearITPendingBit函数应用指南
- 51单片机开发(五)--中断1
- 51单片机学习(3)-中断概念和定时器中断
- STM32定时器中断详解(HAL库实战讲解)
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




