|
一:觸發(fā)方式 STM32 的外部中斷是通過邊沿來觸發(fā)的,不支持電平觸發(fā); 二:外部中斷分組 STM32 的每一個GPIO都能配置成一個外部中斷觸發(fā)源,STM32 通過根據(jù)引腳的序號不同將眾多中斷觸發(fā)源分成不同的組,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0為第一組,那么依此類推,我們能得出一共有16 組,STM32 規(guī)定,每一組中同時只能有一個中斷觸發(fā)源工作,那么,最多工作的也就是16個外部中斷。 STM32 分組和對應中斷處理函數(shù)分配:
三:外部中斷的配置過程 l 配置觸發(fā)源 -GPIO 觸發(fā)源為通過GPIO端口輸入,所以,要配置GPIO的模式,輸入方式,輸入方式有以下幾種: 1.GPIO_Mode_AIN ,模擬輸入(ADC模擬輸入,或者低功耗下省電) 2.GPIO_Mode_IN_FLOATING ,浮空輸入 3.GPIO_Mode_IPD = 0x28,帶下拉輸入 4.GPIO_Mode_IPU = 0x48,帶上拉輸入 l 引腳與外部中斷關(guān)聯(lián) l 外部中斷AFIO時鐘開啟 l 外部中斷配置 這個主要是中斷線路選擇,中斷觸發(fā)方式,中斷使能。 l 中斷優(yōu)先級配置 NVIC l 中斷處理函數(shù)的編寫。 四:外部中斷函數(shù)不能進入的原因分析 結(jié)合我工作中的遇到的問題可以分為: 1)GPIO或者AFIO的時鐘沒有開啟; 2)GPIO和配置的中斷線路不匹配; 3)中斷觸發(fā)方式和實際不相符合; 4)中斷處理函數(shù)用庫函數(shù)時,寫錯,經(jīng)??赡艹霈F(xiàn)數(shù)字和字母之間沒有下劃線; 5)外部中斷是沿觸發(fā),有可能不能檢測到沿,比如 中斷線是低電平(浮空輸入),觸發(fā)是下降沿觸發(fā),可能會出現(xiàn)一直是低電平,高電平的時候是一樣的情況,電平持續(xù)為高電平; 6)沒有用軟件中斷來觸發(fā)外部中斷,調(diào)用函數(shù)EXTI_GenerateSWInterrupt;,因為軟件中斷先于邊沿中斷處理。 |
|
|