STM32 中斷控制線支持 19個外部中斷 /事件請求,每個中斷都有對應狀態(tài)位和獨立的觸發(fā)與屏蔽設(shè)置。 STM32F103的 19個外部中斷為:
線 0-15:對應 GPIO口的輸入中斷。
線 16:連接到 PVD 輸出(掉電檢測,掉電時可立即保存重要數(shù)據(jù)作用 )。
線 17:連接 RTC鬧鐘事件。
線 18:連接到 USB 喚醒事件。
每個 IO 口都可作為外部中斷輸入口的 STM32 的 IO 口遠多于 16個,而 IO 口使用的中斷線只有 16個。為此,GPIO管腳 GPIOx.0~GPIOx.15(X=A,F,G)分別對應中斷線 0-15.這 樣 每 個 中 斷 線 對 應 了 7 個 IO 口 。 如 線 0 對 應 著
GPIOA.0,GPIOB.0,GPIOC.0,GPIOD.0,GPIOE.0,GPIOF.0,GPIOG .0 但是每個中斷線每次只能連接到 1 個 IO 口上。
0.png (66.67 KB, 下載次數(shù): 46)
下載附件
2018-4-26 17:49 上傳
0.png (65.05 KB, 下載次數(shù): 74)
下載附件
2018-4-26 17:49 上傳
GPIO 與中斷映射配置通過函數(shù)來實現(xiàn)
void GPIO_EXTILineConfig ( uint8_t GPIO_PortSource,
uint8_t GPIO_PinSource
)
例如:
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE , GPIO_PinSource2);
即外部中斷線 2 就和 GPIOE 映射起來了,顯然是 GPIOE.2與 EXTI2 中斷線連接
起來了。
接著需設(shè)置中斷觸發(fā)方式:
void EXTI_Init ( EXTI_InitTypeDef * EXTI_InitStruct )
例如:
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line=EXTI_Line4;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
以上例子設(shè)置了中斷線 line4 的中斷為下降沿觸發(fā)。
設(shè)置好了中斷線和 GPIO 的映射關(guān)系,然后又設(shè)置好了中斷的觸發(fā)模式等參數(shù)。
既然是外部中斷,設(shè)計到中斷我們當然需要設(shè)置 NVCI 的中斷優(yōu)先級。
0.jpg (79.08 KB, 下載次數(shù): 41)
下載附件
2018-4-26 17:50 上傳
完整的pdf格式文檔51黑下載地址(共3頁):
STM32之外部中斷EXTI.pdf
(165.37 KB, 下載次數(shù): 17)
2018-4-26 16:30 上傳
點擊文件名下載附件
stm32外部中斷實驗 下載積分: 黑幣 -5
|