STM32_NVIC寄存器详解

简介: STM32_NVIC寄存器详解

在MDK内,与NVIC相关的寄存器,MDK为其定义了如下的结构体:  

typedef struct  

{    

  vu32   ISER[2];    //2个32位中断使能寄存器分别对应到60个可屏蔽中断  

  u32     RESERVED0[30];          

  vu32   ICER[2];   //2个32位中断除能寄存器分别对应到60个可屏蔽中断  

  u32    RSERVED1[30];    

  vu32   ISPR[2];   //2个32位中断挂起寄存器分别对应到60个可屏蔽中断,可挂起正在执行的中断  

  u32     RESERVED2[30];    

  vu32   ICPR[2];   //2个32位中断解挂寄存器分别对应到60个可屏蔽中断,可解除被挂起的中断    

  u32     RESERVED3[30];    

  vu32   IABR[2];    //2个32位中断激活标志寄存器,可读取该寄存器判断当前执行的中断是哪个,中断执行完硬件清零,只读    

  u32     RESERVED4[62];    

  vu32   IPR[15];    //15个32位中断优先级分组寄存器,每个中断分配8个bit,对应到4*15=60个中断

} NVIC_TypeDef;

IPR[15]    

15个32位中断优先级分组寄存器,每个中断分配8个bit,对应到4*15=60个中断。但是并不是8个bit都被使用了,而是仅仅只用到了高四位,这样就可以得到5组16级的中断优先级。

高位的4个bit又分为抢占优先级和子优先级,抢占优先级在前,子优先级在后。两种类型优先级占用的位数又可以通过SCB->AIRCR寄存器的bit[10:8]来配置。

数字越小优先级越高,高优先级的中断可以中断低优先级的中断,但是抢占优先级相同时子优先级高的无法中断子优先级低的中断。

结合实例说明一下:假定设置中断优先级组为2,然后设置中断28(Tim2中断)的抢占优先级为3,响应优先级为2。中断6(外部中断0)的抢占优先级为4,响应优先级为0。中断7(外部中断1)的抢占优先级为3,响应优先级为0。那么这3个中断的优先级顺序为:中断7>中断28>中断6。  

上面例子中的中断28和中断7都可以打断中断6的中断。而中断7和中断28却不可以相互打断!

相关文章
|
2月前
|
C语言 芯片 内存技术
STM32F103标准外设库——寄存器 (二)
STM32F103标准外设库——寄存器 (二)
70 0
STM32F103标准外设库——寄存器 (二)
|
芯片 iOS开发
STM32 | GPIO口的普通与复用如何配置与用法,本文降从最底层教你如何查看手册运用寄存器来实现GPIO口的配置
STM32 | GPIO口的普通与复用如何配置与用法,本文降从最底层教你如何查看手册运用寄存器来实现GPIO口的配置
606 0
|
传感器 存储 人工智能
STM32第一章-寄存器你懂吗?
嵌入式系统是小型计算机的一个分支系统。平常用的PC,就属于功能比较专一的计算机,从核心的处理器来说,可以分成嵌入式微处理器和嵌入式微控制器,我们传统意义上的那种单片机,比如说像51、AVR还有按里面比较低配的一些,比如说像Cortex-M系列的这一类,我们都把它划分为微控制器,微处理器呢,就相对来说处理能力,运算能力要强一些,比如ARM9以上的系列和 Cortex-A以及以上系列。STM32属于一个微控制器,请大家牢牢记住微控制器这四个字。STM32自带了各种常用通信接口,比如USART、I2C、SPI等,可接非常多的传感器,可以控制很多的设备。现实生活中,我们接触到的很多电器产品都有STM3
459 0
 STM32第一章-寄存器你懂吗?
STM32使用寄存器通过控制GPIO点亮一盏灯
STM32使用寄存器通过控制GPIO点亮一盏灯
71 0
STM32使用寄存器通过控制GPIO点亮一盏灯
【STM32】 相关寄存器总结
我们通过了解GPIO口的工作方式以后,我们知道了数据可以通过配置成上下拉、模拟等等的配置,这些功能的配置都跟我们的GPIO的相关寄存器有关。那么我们就要了解GPIO的相关的寄存器。
【STM32】 相关寄存器总结
stm32f407探索者开发板(五)——跑马灯实验(寄存器版本)
stm32f407探索者开发板(五)——跑马灯实验(寄存器版本)
257 0
stm32f407探索者开发板(五)——跑马灯实验(寄存器版本)
|
人工智能
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(下)
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(下)
296 0
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(下)
|
存储 芯片
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(上)
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(上)
551 0
stm32f407探索者开发板(三)——GPIO工作原理(内部结构说明、八种输入输出分析、GPIO寄存器说明)(上)
STM32的HAL库开发系列 - ADC寄存器
STM32的HAL库开发系列 - ADC寄存器
150 0
|
存储 算法 前端开发
STM32寄存器版的基础知识—内存映射
STM32F429 采用的是 Cortex-M4 内核,内核即 CPU,由 ARM公司设计。ARM 公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商(SOC)如 ST、TI、Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、USART(串口)、I2C、SPI等都叫做片上外设。
248 0
STM32寄存器版的基础知识—内存映射