首页 关于
树枝想去撕裂天空 / 却只戳了几个微小的窟窿 / 它透出天外的光亮 / 人们把它叫做月亮和星星
目录

Cortex-M4的中断控制器NVIC

中断控制器(Nested Vectored Interrupt Controller, NVIC),支持系统外设和外部中断, 具体中断号参见Reference Manual。 每个中断有0-15个优先级可以配置,0对应最高优先级,15对应最低优先级,中断优先级是可以动态调整的。

1. ISERx

中断使能寄存器,每一位对应一个中断,写1使能,写0无效果;读0表示中断关闭,读1表示中断使能。

2. ICERx

中断关闭寄存器,类似于ISERx,不同之处在于写1关闭中断。

3. ISPRx

中断Pending置位寄存器,每一位对应一个中断,写1设置相应中断进入Pending状态,等待系统处理。其余同ISERx。

4. ICPRx

中断Pending清除寄存器,与ISPRx不同之处是,写1时如果中断没有进入Active状态,则清除Pending状态退出等待处理。

5. IABRx

中断Active状态寄存器。只读,读1时表示中断处于Active状态,正在被处理器内核处理。

6. IPRx

中断优先级寄存器。对应每个中断都有8位寄存器,可以Byte的形式访问。[3:0]位读访问返回0,忽略对其的写访问。

7. STIR

软件触发中断寄存器(Software Trigger Interrupt Register)。 只有低8位寄存器用作软件触发中断号(Software Generated Interrupt ID, SGI ID)。 写入的值直接对应中断号,例如0x03将产生IRQ3中断。取值范围为[0,239]。

参考书目

  1. STM32F3,STM32F4 and STM32L4 Series Cortex-M4 Programming Manual, PM0214.



Copyright @ 高乙超. All Rights Reserved. 京ICP备16033081号-1