https://blog.csdn.net/dahailinan/article/details/80693781

理解:
1、STM32 總共有4個bit用來描述中斷的種類,4個bit一共有5種組合【搶占式優先級別+副優先級(響應優先級)】,分組就決定了搶占優先級占用的bit數。組0也就是表示0個bit為搶占優先級。
2、搶占式優先級別高的可以打斷低優先級別的工作,相同搶占優先級的不能相互打斷。
3、副優先級高的中斷來臨是,序號低的優先處理【響應】。

前提條件1:組別優先順序(第0組優先級最強,第4組優先級最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1>NVIC_PriorityGroup_2>NVIC_PriorityGroup_3>NVIC_PriorityGroup_4
前提條件2:“組”優先級別>“搶”占優先級別>“副”優先級別
前提條件3:同一組優先級別中,不同的搶占級別之間,其中一搶占級別正在做事,另外搶占級別不能打斷他;(即”同一組優先級下的中斷源間,沒有中斷嵌套“)
前提條件4:不同組優先級別間,依據優先級強弱,優先級別高的組的中斷源可以打斷優先級別低的組的正在做的事情;(即:不同組優先級間,可以中斷嵌套)
對於上面的理解:
STM32中,每個設備都可以配置不同的 中斷組,搶占優先級,響應優先級。
具體舉例:
項目需要2個串口,但是不是兩個串口同時使用,只是隨機使用其中一個,程序對2個串口的優先級需要配置;
要求兩個串口工作的時候不能相互打斷,最好也不鞥你被其他程序打斷,那么可以把2個串口都設置成 NVIC_PriorityGroup_0 分組0【0個bit表示搶占優先級】,副優先級可以分別設置為1,2
