使中斷必須進行中斷優先順序分組配置:
nvic_prioritygroupconfig(優先順序分組);
優先順序分組
主優先順序(搶占優先順序)
子優先順序 (響應優先順序)
描述nvic_prioritygroup_0
00-15
主-0bit,子-4bit
nvic_prioritygroup_1
0-10-7
主-1bit,子-3bit
nvic_prioritygroup_2
0-30-3
主-2bit,子-2bit
nvic_prioritygroup_3
0-70-1
主-3bit,子-1bit
nvic_prioritygroup_4
0-15
0主-4bit,子-0bit
欄位名解釋
nvic_irqchannel
中斷通道
nvic_irqchannelpreemptionpriority
設定搶占優先順序
nvic_irqchannelsubpriority
設定響應優先順序
nvic_irqchannelcmd
使能中斷通道
欄位名解釋
wwdg_irqchannel
視窗看門狗中斷
pvd_irqchannel
pvd 通過 exti 探測中斷
tamper_irqchannel
篡改中斷
rtc_irqchannel
rtc 全域性中斷
fla****f_irqchannel
flash 全域性中斷
rcc_irqchannel
rcc 全域性中斷
exti0_irqchannel
外部中斷線 0 中斷
exti1_irqchannel
外部中斷線 1 中斷
exti2_irqchannel
外部中斷線 2 中斷
exti3_irqchannel
外部中斷線 3 中斷
exti4_irqchannel
外部中斷線 4 中斷
dmachannel1_irqchannel
dma 通道 1 中斷
dmachannel2_irqchannel
dma 通道 2 中斷
dmachannel3_irqchannel
dma 通道 3 中斷
dmachannel4_irqchannel
dma 通道 4 中斷
dmachannel5_irqchannel
dma 通道 5 中斷
dmachannel6_irqchannel
dma 通道 6 中斷
dmachannel7_irqchannel
dma 通道 7 中斷
adc_irqchannel
adc 全域性中斷
usb_hp_cantx_irqchannel
usb 高優先順序或者 can 傳送中斷
usb_lp_can_rx0_irqchannel
usb 低優先順序或者 can 接收 0 中斷
can_rx1_irqchannel
can 接收 1 中斷
can_sce_irqchannel
can sce 中斷
exti9_5_irqchannel
外部中斷線 9-5 中斷
tim1_brk_irqchannel
tim1 暫停中斷
tim1_up_irqchannel
tim1 重新整理中斷
tim1_trg_com_irqchannel
tim1 觸發和通訊中斷
tim1_cc_irqchannel
tim1 捕獲比較中斷
tim2_irqchannel
tim2 全域性中斷
tim3_irqchannel
tim3 全域性中斷
tim4_irqchannel
tim4 全域性中斷
i2c1_ev_irqchannel
i2c1 事件中斷
i2c1_er_irqchannel
i2c1 錯誤中斷
i2c2_ev_irqchannel
i2c2 事件中斷
i2c2_er_irqchannel
i2c2 錯誤中斷
spi1_irqchannel
spi1 全域性中斷
spi2_irqchannel
spi2 全域性中斷
usart1_irqchannel
usart1 全域性中斷
usart2_irqchannel
usart2 全域性中斷
usart3_irqchannel
usart3 全域性中斷
exti15_10_irqchannel
外部中斷線 15-10 中斷
rtcalarm_irqchannel
rtc 鬧鐘通過 exti 線中斷
usbwakeup_irqchannel
usb 通過 exti 線從懸掛喚醒中斷
搶占優先順序與響應優先順序參考優先順序分組
操作呼叫函式/結構體
定義結構體
nvic_inittypedef
配置中斷通道
nvic_irqchannel
設定搶占優先順序
nvic_irqchannelpreemptionpriority
設定響應優先順序
nvic_irqchannelsubpriority
使能外部中斷通道
nvic_irqchannelcmd
//定義結構體
nvic_inittypedef nvic_initstructure;
//配置中斷通道
nvic_initstructure.nvic_irqchannel=中斷通道;
//設定搶占優先順序
nvic_initstructure.nvic_irqchannelpreemptionpriority = 搶占優先順序
//設定響應優先順序
nvic_initstructure.nvic_irqchannelsubpriority = 響應優先順序
//使能外部中斷通道
nvic_initstructure.nvic_irqchannelcmd = enable;
//初始化
nvic_init
(&nvic_initstructure)
;
STM32F4設定NVIC中斷優先順序分組
中斷管理方法 首先,對stm32中斷進行分組,組0 4。同時,對每個中斷設定乙個搶占優先順序和乙個響應優先順序值。分組配置是在暫存器scb aircr中配置 高優先順序的搶占優先順序是可以打斷正在進行的低搶占優先順序中斷的。搶占優先順序相同的中斷,高響應優先順序不可以打斷低響應優先順序的中斷。搶占優...
STM32F103系列NVIC中斷優先順序分組講解
一 簡介 cm3核心支援256個中斷,16個核心中斷,240個外部中斷,並且擁有256級的可程式設計中斷設定。但是stm32只用到了cm3核心的一部分,stm32有84個中斷,包括16個核心中斷和68個可遮蔽中斷,具有16級可程式設計中斷優先順序。stm32f103系列只有60個可遮蔽中斷。二 中斷...
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...