STM32F4設定NVIC中斷優先順序分組

2021-07-26 03:59:46 字數 1015 閱讀 6139

中斷管理方法: 

首先,對stm32中斷進行分組,組0~4。同時,對每個中斷設定乙個搶占優先順序和乙個響應優先順序值。 

分組配置是在暫存器scb->aircr中配置: 

高優先順序的搶占優先順序是可以打斷正在進行的低搶占優先順序中斷的。

搶占優先順序相同的中斷,高響應優先順序不可以打斷低響應優先順序的中斷。

搶占優先順序相同的中斷,當兩個中斷同時發生的情況下,哪個響應優先順序高,哪個先執行。

如果兩個中斷的搶占優先順序和響應優先順序都是一樣的話,則看哪個中斷先發生就先執行。

中斷設定相關暫存器

__io uint8_t ip[240]; //中斷優先順序控制的暫存器組

__io uint32_t iser[8]; //中斷使能暫存器組

__io uint32_t icer[8]; //中斷失能暫存器組

__io uint32_t ispr[8]; //中斷掛起暫存器組

__io uint32_t icpr[8]; //中斷解掛暫存器組

__io uint32_t iabr[8]; //中斷啟用標誌位暫存器組

中斷優先順序設定步驟:

void nvic_prioritygroupconfig(uint32_t nvic_prioritygroup);

void nvic_init(nvic_inittypedef* nvic_initstruct);

預設情況下,如何不設定中斷優先順序分組,則中斷優先順序分組預設為0,即0位搶占優先順序,4位響應優先順序,則無任何搶占優先順序,所以無論中斷的優先順序設多少,都沒有搶占中斷的功能,所以,如果想要乙個中斷打斷另乙個中斷,必須設定中斷優先順序分組為1,2,3,4.

如設定優先順序分組為2

nvic_prioritygroupconfig(nvic_prioritygroup_2);

STM32F4外部中斷設定

c void mpuintinit void void mpu exit it handler h define mpu exit gpio gpioa define mpu exit gpio pin gpio pin 1 define mpu exit rccperiph rcc ahb1per...

STM32F4 NVIC中斷配置(二)

使中斷必須進行中斷優先順序分組配置 nvic prioritygroupconfig 優先順序分組 優先順序分組 主優先順序 搶占優先順序 子優先順序 響應優先順序 描述nvic prioritygroup 0 00 15 主 0bit,子 4bit nvic prioritygroup 1 0 1...

STM32F4中斷總結

使能syscfg時鐘 只要我們使用到外部中斷,就必須開啟syscfg時鐘,因為要用到相關暫存器如配置gpio與中斷線的對映關係 apb2上 設定io口與中斷線的對映關係,syscfg extilineconfig 初始化線上中斷,設定觸發條件等,exti init 配置中斷分組 nvic 並使能中斷...