进来讨论一下,NVIC寄存器组中的中断挂起SETPEND与消除CLRPEND,与外部中断挂起寄存器EXTI_PR有何关系?

2019-07-21 04:17发布

本帖最后由 warship 于 2018-7-27 19:32 编辑

如题,讨论一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
34条回答
warship
2019-07-24 04:41
hougeqvjing 发表于 2018-7-31 23:05
NVIC里面不能设置SYSTICK的优先级,也不能开启systick的优先级,为什么说是systick绑定在NVIC中呢?中断 ...

3、NVIC的寄存器管理着包括系统异常(小于0)和外部中断(0-240)的所有中断的优先级。有如下三处与优先级设置相关的寄存器:
一是应用程序中断及复位控制寄存器(AIRCR)的10:8这三位,用于定义全系统的优先级分组,它定义了如何去解读每一个中断优先级设定值的具体含义(即哪几位代表抢占级,哪几位代表响应级?)
二是系统异常(中断号小于0的)的中断优先级。就是第1点已经回答的SCB的SHP[12],共12个8BIT的数组,其中SHP[11]里存放着SYSTICK的优先级;
三是所有外部中断(中断号大于等于0的)的优先级,存放在IP[240]中,共240个8BIT的数组,可以通过各个中断号作为数组下标来访问。例如:如果想设置EXTI0_IRQn的优先级为最高,使用指令: NVIC->IP[6]=0x00;  就可以了(EXTI0_IRQn中断号为6)。
注意:以上二和三项的表示方法是统一的,每一个中断都可以最大用8BIT定义中断优先级,但我们常用的具体芯片只实现了4BIT,即只有高四位有效。

一周热门 更多>