stm32之外部中斷

2022-08-26 18:21:12 字數 1116 閱讀 7658

外部中斷/事件控制器包含多達 19 個用於產生事件/中斷請求的邊沿檢測器。 每根輸入線都可單獨進行配置, 以選擇型別( 中斷或事件) 和相應的觸發事件( 上公升沿觸發、 下降沿觸

發或邊沿觸發) 。 每根輸入線還可單獨遮蔽。 掛起暫存器用於保持中斷請求的狀態線。其中有16條是對應於gpio的 

核心中會有乙個nvic( 巢狀向量中斷控制器) 來管理所有的中斷, 並對中斷進行分組和優先順序的分配。 

cortex-m3核心總共可以分0...7總共八組, 而stm32微控制器只使用其中5組 

一。外部中斷的配置使用

如果是事件觸發中斷,需要進行外部事件是什麼,如按鍵觸發中斷,則按鍵的引腳是io幾,通過觀察狀態線對應的gpio進行選擇io口對映到的外部中斷線

(一).外部中斷初始化

1.開啟afi0和io埠時鐘

2.io口初始化--按鍵是輸入模式:如果按鍵函式單獨配置了,這裡可以省略io口配置。

3.io口對映到外部中斷線上gpio_extilineconfig(gpio_portsourcegpioa,gpio_pinsource0);或是afio->exticr[0] &=~ (0xf<<0);

4.選擇中斷源,開放中斷請求,設定優先順序,設定優先順序分組nvic_setprioritygrouping(5);//佔先:2位  次級:2位,中斷管理使能---------------暫存器配置

void exti0_init(void

)

外部中斷0初始化

(二)中斷服務函式

1、 進入中斷服務函式要先清除中斷標誌位

2、 中斷服務函式無引數、 無返回值

3、 快進快出( 中斷服務函式最好不要加延時)

4、 中斷服務函式不宣告不呼叫

配置過程:

1.先判斷中斷是否產生

2.產生的話清中斷標誌位

void exti0_irqhandler(void

)#else

if(exti_getitstatus(exti_line0)==set)

#endif

}

中斷服務函式

STM32之外部中斷

首先配置外部中斷的輸入引腳和中斷源 void lcr config void 選了gpio8作為中斷輸入,中斷源為exti line8 中斷服務函式由於啟動函式定義 export exti9 5 irqhandler weak 故在檔案stm32f10x it.c m3為例 中定義了各類中斷服務函式...

STM32學習之外部中斷

外部中斷 事件控制器由19 個產生事件 中斷要求的邊沿檢測器組成。每個輸入線可以獨 地配置輸入型別 脈衝或掛起 和對應的觸發事件 上公升沿或下 沿或者雙邊沿都觸發 每個輸入線都可以被獨 的遮蔽。掛起暫存器保持著狀態線的中斷要求。nvic驅動有多種用途 例如使能或者失能irq中斷,使能或者失能單獨的i...

STM32之外部中斷控制

一 stm32外部中斷 1 stm32外部中斷結構圖 如上圖所示 主要包括四個環節,gpio afio exti nvic。以stm32f103ve 100腳 為例說明硬體模組的數量 gpio 80個 afio選擇通道 16個 外部中斷線exti 16 3 19個 nvic 1個 2 exti控制器...