前言
这一篇博客主要讲解NVCI中断优先级分组,优先级设置。因为还没有我还没学到做中断实验,所以有些地方我自己理解得也不是很透彻,这是看了原子哥的视频用自己的话来梳理一下思路。
基础知识
STM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级可编程的中断优先级。
而我们常用的就是这 68 个可屏蔽中断, 但是 STM32 的 68 个可屏蔽中断,在 STM32F103 系列上面,又只有 60 个(在 107 系列才有 68 个)。因为我们开发板选择的芯片是 STM32F103 系列的所以我们就只针对 STM32F103 系列这 60 个可屏蔽中断进行介绍。
具体就是IP[0]-IP[59],每一个中断具体作用可以查看《STM32中文参考手册》9.1.2,下面放一下部分参考手册中的截图。
NVIC中断优先级分组
STM32 将中断分为 5 个组,组 0-4该分组的设置是由 SCB->AIRCR 寄存器的 bit10-8 来定义的。具体的分配关系如表所示。
配置了AIRCR的10-8位之后,就对4-7位进行了一个分组,假设分组为1,则第7位是抢占优先级,6-4位是响应优先级(即1位抢占优先级,3位响应优先级),同理可以看出抢占优先级可以设置位0或1,响应优先级可以设置位0-7(000-111)。