stm32 nvic 中斷優先順序管理
stm32 有 84 個中斷,包括 16 個核心中斷和 68 個可遮蔽中斷,具有 16 級可程式設計的中斷優先順序。
而我們常用的就是這 68 個可遮蔽中斷,在stm32f103 系列上面,又只有 60 個。
中斷分組:stm32 將中斷分為5 個組,組 0~4。該分組的設定是由 scb->aircr 暫存器的 bit10~8 來定義的。
組0 111 0:4 0 位搶占優先順序,4 位響應優先順序
組1 110 1:3 1 位搶占優先順序,3 位響應優先順序
組2 101 2:2 2 位搶占優先順序,2 位響應優先順序
組3 100 3:1 3 位搶占優先順序,1 位響應優先順序
組4 011 4:0 4 位搶占優先順序,0 位響應優先順序
搶占優先順序的級別高於響應優先順序。而數值越小所代表的優先順序就越高。高優先順序的搶占優先順序可以打斷低優先順序的,而響應優先順序不可以打斷低階別的響應優先順序。一共是四位,16級中斷優先順序。
中斷優先分組函式:
nvic_prioritygroupconfig
(nvic_prioritygroup_x)
;//設定中斷分組
typedef
struct
//定義初始化結構體變數
nvic_inittypedef;
nvic_init
(&nvic_initstructure)
;//初始化函式
mdk位址對映
mdk 採用的方式是通過結構體來將暫存器組織在一起。gpioa 的暫存器的位址=gpioa 基位址+暫存器相對 gpioa 基位址的偏移值,同時gpio的基位址相對於所掛載的匯流排的位址是偏移的。
gpioa_base 的位址為(apb2periph_base + 0x0800)相對的gpioa的brr暫存器的偏移位址0x14,所以位址為gpioa>brr=gpioa_base=0x40000000+0x10000+0x0800+0x014=0x40010814。
stm32學習筆記 NVIC
這部分講的很好。misc.件其實就是stm32f10x nvic.h,nvic的主要操作都在其中,還包括systick的選擇源操作。core cm3檔案裡面是核心外設,當然包括nvic,l裡面包含nvic的暫存器操作。高達81個中斷,實際上是67stm外設中斷 60個settable,由庫函式int...
STM32學習筆記 五 NVIC
三 中斷程式設計 f407在核心水平上搭載了乙個異常響應系統,支援為數眾多的系統異常和中斷,其中系統異常有10個,中斷有82個。nvic是巢狀向量中斷控制器,控制著整個晶元中斷相關的功能,它跟核心緊密耦合,是核心裡面的乙個外設。在配置中斷的時候一般只用iser icer和ip這三個暫存器,iser用...
stm32學習筆記2
gpio口 io口引腳ft標識 可以容忍5v的io口。io口暫存器必須要按32位字被訪問。工作方式 1 4種輸入模式 輸入浮空 浮空輸入,可以做key識別,rx1 上拉模式 上拉電阻,vdd閉合 電阻30 50k 下拉模式 下拉電阻,vss閉合 模擬輸入 ad轉換 0 3.3v 2 4種輸出模式 開...