stm32f103单片机的NVIC分组2介绍

NVIC_PriorityGroup_2 是STM32中断优先级的一种分组方式,它决定了如何分配用于配置中断优先级的4个寄存器位。

选择这个组别,意味着将2个位 分配给抢占优先级 ,2个位 分配给响应优先级。

下面是对这个组别的具体介绍:

优先级分配与取值范围

在NVIC_PriorityGroup_2模式下:

  • 抢占优先级 (Preemption Priority) :占用2个位 ,因此有2^2 = 4个优先级级别,取值范围为 0~3。

  • 响应优先级 (Subpriority) :占用2个位 ,因此也有2^2 = 4个优先级级别,取值范围为 0~3。

请注意,对于所有优先级,数值越小,代表的优先级越高 ,0是最高优先级-11。

抢占与响应优先级的作用

这两种优先级在中断嵌套和响应时扮演不同角色:

  • 抢占优先级 :决定中断能否嵌套。一个高抢占优先级的中断,可以打断任何正在执行的低抢占优先级的中断服务程序。

  • 响应优先级 :在抢占优先级相同的中断之间起作用。

    • 它不能打断正在执行的、抢占优先级相同但响应优先级较低的中断。

    • 当两个抢占优先级相同的中断同时发生 时,响应优先级高的那个会优先执行。

如果在NVIC_PriorityGroup_2下,两个中断的抢占优先级和响应优先级都相同,那么它们的执行顺序将由中断向量表中的硬件编号决定,编号靠前的先执行。

总结与建议

NVIC_PriorityGroup_2 是一个非常平衡和常用的配置。它提供了4级抢占优先级 ,足以满足大多数需要中断嵌套的场景,同时也提供了4级响应优先级,方便在同级中断中进行更细致的排序。

这个分组是许多STM32官方例程和第三方库(如FreeRTOS)的默认配置,具有很好的兼容性。

相关推荐
Industio_触觉智能13 小时前
RK3506 Buildroot系统目录地图-上|7个关键符号链接与构建产物全解析
嵌入式硬件·sdk·智能硬件·固件·瑞芯微·系统编译·rk3506
lzj_pxxw15 小时前
STM32移植FreeRTOS(Cmake+CubeMX)
vscode·stm32·嵌入式硬件
Zwawa16 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
물の韜17 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
Zw-awa18 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
stm32
无敌贵点大王20 小时前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
碧海银沙音频科技研究院20 小时前
粉色笔记本电脑每次要等把电池电耗尽才能开机问题解决方法
嵌入式硬件
wuyk5551 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
shijuejianceliu2 天前
传统规则视觉与嵌入式AI智能相机的技术差异
人工智能·嵌入式硬件·视觉检测·相机
Zw-awa2 天前
OLED为什么能显示字:软件I2C换成硬件I2C
stm32