外部中斷/事件控制器由19 個產生事件/中斷要求的邊沿檢測器組成。每個輸入線可以獨立地配置輸入型別(脈衝或掛起)和對應的觸發事件(上公升沿或下降沿或者雙邊沿都觸發)。每個輸入線都可以被獨立的遮蔽。掛起暫存器保持著狀態線的中斷要求。
nvic驅動有多種用途:例如使能或者失能irq中斷,
使能或者失能單獨的irq通道,改變irq通道的優先順序等等。
typedef
struct exti_inittypedef;
typedef
struct nvic_inittypedef;
exti 有20 個中斷/事件線,每個gpio都可以被設定為輸入線,占用exti0 至exti15,
還有另外七根用於特定的外設事件
中斷/事件線 輸入源
exti0 px0(x 可為a,b,c,d,e,f,g,h,i)
exti1 px1(x 可為a,b,c,d,e,f,g,h,i)
exti2 px2(x 可為a,b,c,d,e,f,g,h,i)
exti3 px3(x 可為a,b,c,d,e,f,g,h,i)
exti4 px4(x 可為a,b,c,d,e,f,g,h,i)
exti5 px5(x 可為a,b,c,d,e,f,g,h,i)
exti6 px6(x 可為a,b,c,d,e,f,g,h,i)
exti7 px7(x 可為a,b,c,d,e,f,g,h,i)
exti8 px8(x 可為a,b,c,d,e,f,g,h,i)
exti9 px9(x 可為a,b,c,d,e,f,g,h,i)
exti10 px10(x 可為a,b,c,d,e,f,g,h,i)
exti11 px11(x 可為a,b,c,d,e,f,g,h,i)
exti12 px12(x 可為a,b,c,d,e,f,g,h,i)
exti13 px13(x 可為a,b,c,d,e,f,g,h,i)
exti14 px14(x 可為a,b,c,d,e,f,g,h,i)
exti15 px15(x 可為a,b,c,d,e,f,g,h,i)
exti16 pvd 輸出
exti17 rtc 鬧鐘事件
exti18 usb 喚醒事件
exti19 乙太網喚醒事件(只適用互聯型)
exti0 至exti15 用於gpio,通過程式設計控制可以實現任意乙個gpio為exti 的輸入
源。
extern "c"
void exti0_irqhandler();
//設定中斷函式
#define int_gpio gpioa //中斷埠
#define int_pin gpio_pin_0 //埠引腳
#define int_gpio_rcc rcc_apb2periph_gpioa //埠時鐘
#define int_gpio_afio rcc_apb2periph_afio //復用afio
#define int_exit_line exti_line0 //中斷線路
#define int_exti_gpiosource gpio_portsourcegpioa //選擇用作外部中斷線源的gpio埠
#define int_exti_pinsource gpio_pinsource0 //待設定的外部中斷線路引腳
#define inthandle exti0_irqhandler //
nvic_inittypedef nvic_initstructure; //中斷控制器
exti_inittypedef exti_initstructure; //外部中斷事件
gpio_inittypedef gpio_initstructure; //引腳
void gpioint::gpiointinit()
void inthandle()
}
STM32之外部中斷
首先配置外部中斷的輸入引腳和中斷源 void lcr config void 選了gpio8作為中斷輸入,中斷源為exti line8 中斷服務函式由於啟動函式定義 export exti9 5 irqhandler weak 故在檔案stm32f10x it.c m3為例 中定義了各類中斷服務函式...
stm32之外部中斷
外部中斷 事件控制器包含多達 19 個用於產生事件 中斷請求的邊沿檢測器。每根輸入線都可單獨進行配置,以選擇型別 中斷或事件 和相應的觸發事件 上公升沿觸發 下降沿觸 發或邊沿觸發 每根輸入線還可單獨遮蔽。掛起暫存器用於保持中斷請求的狀態線。其中有16條是對應於gpio的 核心中會有乙個nvic 巢...
STM32之外部中斷控制
一 stm32外部中斷 1 stm32外部中斷結構圖 如上圖所示 主要包括四個環節,gpio afio exti nvic。以stm32f103ve 100腳 為例說明硬體模組的數量 gpio 80個 afio選擇通道 16個 外部中斷線exti 16 3 19個 nvic 1個 2 exti控制器...