根據手冊PM0214 40頁、213頁、200、195。interrupt priority grouping.
根據手冊EM0090 第371頁。
stm32f42xxx除掉fpu部分,有91個可屏蔽的中斷通道、只有4位數據用於控制優先級等級。包括異常在內的中斷都被NVIC控制。
NVIC管理了單片機的中斷,分組優先級。(P213).
通過分組后,確定主優先級和子優先級的位數(共4位)。之后賦值主優先級和子優先級,寫入對應的NVIC_IPRX中。參考如下
NVIC->IP[NVIC_InitStruct->NVIC_IRQChannel] = tmppriority;
其中的NVIC->IP對應了中斷位置,只寫入8位中的高四位,低4位固定為0.
只有主優先級確定了異常中斷。(P40)
對於普通的中斷,當主優先級(group priority)相同,比較子優先級(subpriority)。如果二者都相同,比較優先級號碼(IRQ number).反正是低的優先級高。