1:口線設置輸入方式(根據實際情況設置為上拉或是下拉)
2:口線設置中斷方式及選擇中斷線路
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource13);
EXTI_InitStructure.EXTI_Line=EXTI_Line13;
與口線PA.13一致
3:使能中斷通道
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;//時能中斷通道
口線要在中斷通道內。15~10中包含了13
13包含了PA.13,PB.13,PC.13所有13口的中斷。
4:中斷服務程序。
voidEXTI15_10_IRQHandler(void)
中斷服務程序函數名要包含中斷口線。15~10包含了13
5:(15~10這種復式中斷)中斷服務程序中如何區分哪一線的中斷?
if(EXTI_GetITStatus(EXTI_Line13) !=RESET)
{
}
else if (EXTI_GetITStatus(EXTI_Line15) !=RESET)
{
}
通過分析查看是哪一線被置位來辨別這種復式中斷
6:線路中斷中如何分清口線?即區分是PA口,PB口還是PC口?
//處理來自PA.13口
if(PA.13== 0)
{
}
//處理來自PB.13口
if(PB.13== 0)
{
}
//處理來自PC.13口
if(PC.13== 0)
{
}
|