如图,我用了两个光耦,用来测小车的轮速的。。。PD2口的那个很好用,PF11的那个只有刚插上去的瞬间能进中断,之后就进不去了。我又把PD2口的那个光耦插到PF11,还是这问题,排除了光耦问题。。。。。。现在的现象是:PF11只有刚上的瞬间能进中断,之后不论光耦怎么变都没反应。。如果一直来回拔插的话可以进好多次中断。。。下面是程序:
void EXTIX_Init(void)
{
Ex_NVIC_Config(GPIO_D,2,FTIR); //下降沿触发
MY_NVIC_Init(2,2,EXTI2_IRQChannel,2); //抢占2,子优先级2,组2
Ex_NVIC_Config(GPIO_F,11,FTIR); //下降沿触发
MY_NVIC_Init(2,3,EXTI15_10_IRQChannel,2); //抢占2,子优先级3,组2
}
void EXTI2_IRQHandler(void)
{
LED0=!LED0;
mtvright++;
LCD_ShowxNum(170,170,mtvright,3,16,0);
EXTI-> R=1<<2; //清除LINE2上的中断标志位
}
void EXTI15_10_IRQHandler(void)
{
if(EXTI-> R&(1<<11))//是11线的中断
{
LED1=!LED1;
mtvleft++;
LCD_ShowxNum(170,202,mtvleft,3,16,0);
}
EXTI-> R=1<<11; //清除LINE11上的中断标志位
}
主程序中将中断初始化
|