STM32外部中斷易出錯總結
一:觸發(fā)方式
本文引用地址:http://m.butianyuan.cn/article/201611/321888.htmSTM32
二:外部中斷分組
STM32
STM32
管腳 | 中斷標志 | 中斷處理函數分配 |
PA0~PG0 | EXTI0 | EXTI0_IRQHandler |
PA1~PG1 | EXTI1 | EXTI1_IRQHandler |
PA2~PG2 | EXTI2 | EXTI2_IRQHandler |
PA3~PG3 | EXTI3 | EXTI3_IRQHandler |
PA4~PG4 | EXTI4 | EXTI4_IRQHandler |
PA5~PG5 | EXTI5 | |
PA6~PG6 | EXTI6 | |
PA7~PG7 | EXTI7 | |
PA8~PG8 | EXTI8 | |
PA9~PG9 | EXTI9 | |
PA10~PG10 | EXTI10 | EXTI15_10_IRQHandler |
PA11~PG11 | EXTI11 | |
PA12~PG12 | EXTI12 | |
PA13~PG13 | EXTI13 | |
PA14~PG14 | EXTI14 | |
PA15~PG15 | EXTI15 |
三:外部中斷的配置過程
l
觸發(fā)源為通過GPIO端口輸入,所以,要配置GPIO的模式,輸入方式,輸入方式有以下幾種:
1.GPIO_Mode_AIN
2.GPIO_Mode_IN_FLOATING
3.GPIO_Mode_IPD
4.GPIO_Mode_IPU
l
l
l
這個主要是中斷線路選擇,中斷觸發(fā)方式,中斷使能。
l
l
四:外部中斷函數不能進入的原因分析
結合我工作中的遇到的問題可以分為:
1)GPIO或者AFIO的時鐘沒有開啟;
2)GPIO和配置的中斷線路不匹配;
3)中斷觸發(fā)方式和實際不相符合;
4)中斷處理函數用庫函數時,寫錯,經常可能出現數字和字母之間沒有下劃線;
5)外部中斷是沿觸發(fā),有可能不能檢測到沿,比如
6)沒有用軟件中斷來觸發(fā)外部中斷,調用函數EXTI_GenerateSWInterrupt;,因為軟件中斷先于邊沿中斷處理。
我的問題出現在沒有啟動AFIO時鐘信號;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);導致總也進不了中斷
評論