void EXTI15_10_IRQHandler(void)
{
delay_ms(10); //消抖
// PM_CMD++;
// printf("下降沿中断!\r\n");
//EXTI-> R=1<<1; //清除LINE13上的中断标志位
EXTI-> R=1<<12; //清除LINE15上的中断标志位
}
//外部中断初始化程序
//初始化PA0,PA13,PA15为中断输入.
void EXTIX_Init(void)
{
RCC->APB2ENR|=1<<2; //使能PORTA时钟
JTAG_Set(JTAG_SWD_DISABLE);//关闭JTAG和SWD
GPIOA->CRL&=0XFFF00FFF;//PA3.4设置成输入
GPIOA->CRL|=0X00088000;
// GPIOA->CRH&=0XFFF00FFF;//PA13,15设置成输入
// GPIOA->CRH|=0X00088000;
GPIOA->ODR|=1<<3; //PA13上拉,PA0默认下拉
GPIOA->ODR|=1<<4; //PA15上拉
// Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发
Ex_NVIC_Config(GPIO_A,3,FTIR);//下降沿触发
//Ex_NVIC_Config(GPIO_A,12,FTIR);//下降沿触发
MY_NVIC_Init(2,2,EXTI3_IRQChannel,2); //抢占2,子优先级2,组2
//MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2
}
以上是大概的片断 我想请教下 如果pa6跟pb6都设置为外部中断 那么在 void EXTI1_6_IRQHandler(void)
中怎么判断是来自哪个引脚的中断呢?
|