STM32的中斷系統(tǒng)理解
STM32中的中斷分為異常和中斷,STM32 目前支持的中斷共為 84 個(gè)(16 個(gè)內(nèi)核+68 個(gè)外部), 16 級(jí)可編程中斷優(yōu)先級(jí)的設(shè)置(僅使用中斷優(yōu)先級(jí)設(shè)置 8bit 中的高 4 位)和16個(gè)搶占優(yōu)先級(jí)(因?yàn)閾屨純?yōu)先級(jí)最多可以有四位數(shù))。
但我 們 一 般 建 議 從 啟 動(dòng) 文 件startup_stm32f10x_hd.s 中查找的,因?yàn)椴煌吞?hào)的 STM32 芯片,中斷向量表稍微有點(diǎn)區(qū)別,在啟動(dòng)文件中,已經(jīng)有相應(yīng)芯片可用的全部中斷向量。而且在編寫中斷服務(wù)函數(shù)時(shí),
需要從啟動(dòng)文件中定義的中斷向量表查找中斷服務(wù)函數(shù)名。STM32 的中斷如此之多,配置起來(lái)并不容易,因此我們需要一個(gè)強(qiáng)大而方便的中斷控制器 NVIC (Nested Vectored Interrupt Controller)。NVIC 是屬于Cortex 內(nèi)核的器件,不可屏蔽中斷(NMI)和外部中斷都由它來(lái)處理,而 SYSTICK 不是由 NVIC 來(lái)控制的。