外部中斷/事件控制器包含多達 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控制器...