NVIC寄存器组中的中断挂起SETPEND与消除CLRPEND,与外部中断挂起寄存器EXTI_PR有何关系?前者中是挂起等待,后者中是标识的意思

https://blog.****.net/cxs0913/article/details/103320691

1、先说结论,STM32的中断控制是分级管理的,CM3内核中的NVIC是顶层,对每个通道都设有1BIT的中断挂起位,但每个通道可能不止一个中断源,比如EXTI5_9_IRQn,对NVIC而言,只算一个通道,但实际包含有5个中断源,因此,下层就必须实现对这多个中断源的独立监控,这就是EXTI->PR中的挂起位了,也就是说EXTI_PR用于区分EXTI5_9_IRQn中的具体哪一个中断源。

2、STM32的中断系统可以理解为分两级管理,顶层当然是CM3内核强大的NVIC,下层就是形形色色的片上外设了,对于NVIC来说,它最大可以管理256个不同的中断通道,这256个中断,内核自留了16个,剩下的通称为外部中断(注意与EXTI不要混淆,EXTI是外部中断中的一小部分,全称为外部线中断),外部中断可以多达240个(具体的芯片只实现了约60多个)。

NVIC寄存器组中的中断挂起SETPEND与消除CLRPEND,与外部中断挂起寄存器EXTI_PR有何关系?前者中是挂起等待,后者中是标识的意思

NVIC寄存器组中的中断挂起SETPEND与消除CLRPEND,与外部中断挂起寄存器EXTI_PR有何关系?前者中是挂起等待,后者中是标识的意思