STM32優(yōu)先級

STM32中有兩個關(guān)于優(yōu)先級的概念,分別是搶占式優(yōu)先級和響應優(yōu)先級,每個中斷源都需要被指定這兩種優(yōu)先級,其屬性編號越小,表明它的優(yōu)先級別越高。下面將先大致介紹一下這兩個優(yōu)先級的概念。

搶占式優(yōu)先級與響應優(yōu)先級?

首先,如何確定優(yōu)先級等級?
具有高搶占式優(yōu)先級的中斷可以在具有低搶占式優(yōu)先級的中斷處理過程中被響應,即中斷嵌套,或者說高搶占式優(yōu)先級的中斷可以嵌套在低搶占式優(yōu)先級的中斷中。當兩個中斷源的搶占式優(yōu)先級相同時,這兩個中斷將沒有嵌套關(guān)系,當一個中斷到來后,如果正在處理另一個中斷,這個后到來的中斷就要等到前一個中斷處理完之后才能被處理。如果這兩個中斷同時到達,則中斷控制器根據(jù)他們的響應優(yōu)先級高低來決定先處理哪一個;如果他們的搶占式優(yōu)先級和響應優(yōu)先級都相等,則根據(jù)他們在中斷表中的排位順序決定先處理哪一個。
總結(jié)下便是:搶占式優(yōu)先級>響應優(yōu)先級>中斷表中的排位順序

第0組優(yōu)先級最高,第4組優(yōu)先級最低。

#STM32中設置優(yōu)先級的庫函數(shù)
NVIC_PriorityGroupConfig(u32  NVIC_PriorityGroup)

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);   #選擇第1組

NVIC_PriorityGroup_0 => 選擇第0組      //就是全部為響應優(yōu)先級,所有的中斷都不能搶占其他中斷。

NVIC_PriorityGroup_1 => 選擇第1組     //兩個搶占優(yōu)先級

NVIC_PriorityGroup_2 => 選擇第2組     //4個搶占優(yōu)先級

NVIC_PriorityGroup_3 => 選擇第3組     //8個搶占優(yōu)先級

NVIC_PriorityGroup_4 => 選擇第4組     //16個搶占優(yōu)先級,沒有響應優(yōu)先級。所有中斷到來時均能按照優(yōu)先級高低搶占其他優(yōu)先級的中斷。

以選擇NVIC_PriorityGroup_1為例,那么搶占式優(yōu)先級便占一位,也就是說可以有21個級別,可以設置為0和1,而響應優(yōu)先級則占3位,也就是說可以有23個選擇,可以設置為0~7;總共來說就可以區(qū)別>16種優(yōu)先級。舉個例子,假如現(xiàn)在有4個外部中斷,還有一個EXTI9_5中斷,那么如果選擇優(yōu)先級分組為第1組,那么搶占式優(yōu)先級便只有兩種,5個中斷就至少有3個在搶占式優(yōu)先級上是相同的優(yōu)先級上,其他兩個在令一優(yōu)先級別。接著設置響應優(yōu)先級可以有8種選擇;假如現(xiàn)在同時有兩個搶占式優(yōu)先級別相同的中斷發(fā)生,那么處理的順序是誰的響應優(yōu)先級高則誰優(yōu)先進入中斷,另外這點是需要注意的,如果此時進入這個中斷之后又來了一個搶占式優(yōu)先級相同但是響應優(yōu)先級更高的中斷,這時也是不會打斷已有的中斷的。

參考鏈接:
STM32的優(yōu)先級NVIC_PriorityGroupConfig的理解及其使用
【轉(zhuǎn)】STM32中的搶占優(yōu)先級、響應優(yōu)先級概念

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容