STM32之NVIC中斷優先順序的介紹

2021-08-18 11:41:31 字數 1311 閱讀 7112

2018/4/9

stm32

1.說在前面

1.中斷:中斷就是cpu在處理一件事的時候,遇到緊急情況,所以就去響應而處理另外一件事(粗略介紹)

2.對於51而言,只有5個中斷源,所以難度不算太大,但是,對於cm3核心支援256個中斷(16個核心中斷加240個內部中斷)

stm32f103而言,有著60會讓可遮蔽中斷,所以相對來說比較複雜

2.對於中斷的部分暫存器的簡單介紹

typedef struct

nvic_type;

iser[8]:中斷使能暫存器,在stm32f103中使用了iser[0](bit0-bit31對應著中斷0到31),iser[1](bit0到bit27 對應著中斷32到59)

icer[8]:設定icer來實現除能操作

ispr[8]:中斷掛起暫存器,每個位和iser[8]一致,將暫存器置於1則中斷掛起,然後實現更高階或同級的中斷,寫0無效

icpr[8]:中斷解掛控制暫存器,和ispr[8]進行對應,對相應暫存器進行解掛

ip[240]:中斷優先順序控制暫存器組

3.stm32的中斷分組

1.通過配置scb->aircr來處理

2.關於搶占優先順序和響應優先順序的介紹

1.對於搶占優先順序和響應優先順序,相對設定的數值越低,則相對更高

2.對於搶占優先順序不同而言,優先順序越高,可以在搶占優先順序低的位置進行中斷、

3.對於搶占優先順序相同,但是響應優先順序不同而言,響應優先順序不能實現巢狀的中斷,但是可以實現中斷的先後順序,在響應優先順序高的位置則先進行中斷

3.關於中斷分組的庫函式設定方法

void nvic_prioritygroupconfig(uint32_t nvic_prioritygroup)//öð¶ïóåï輶éèöã

4.中斷函式初始化的庫函式設定

void nvic_init(nvic_inittypedef* nvic_initstruct)

else

}

就像設定gpio口一樣,以設定結構體的方法來實現初始化

5.明天準備學習一下外部中斷函式,用上今天的知識

STM32的 NVIC中斷優先順序分組

cm3 核心支援 256 個中斷,其中包含了 16 個核心中斷和 240 個外部中斷,並且具有 256 級的可程式設計中斷設定。stm32 並沒有使用 cm3 核心的全部東西,而是只用了它的一部分。stm32 有 84 個中斷,包括 16 個核心中斷和 68 個可遮蔽中斷,具有 16 級可程式設計的...

STM32NVIC中斷優先順序

cm3核心共支援256個中斷,其中包含了16個核心中斷,240個外部中斷,並且具有256級可程式設計中斷設定。但是stm32並沒有使用cm3核心全部的東西,stm32有84個中斷,其中包含了16個核心中斷,68個可遮蔽中斷,具有16級可變陳的中斷優先順序。typedef struct nvic ty...

STM32 NVIC 中斷優先順序管理

這裡以stm32f4系列為例。先簡單介紹下stm32f4的中斷分組,stm32f4將中斷分為5個組,組0 4.該分組的設定是有scb aircr暫存器的bit 10 8來定義的。具體分配關係如下表 假設說組設定為2,那麼此時每個中斷的中斷優先暫存器的高四位中的最高兩位是搶占優先順序,低兩位是響應優先...