初始化
EXTI_DeInit();
GPIO_Init(PORT, (GPIO_Pin_TypeDef)PINS, GPIO_MODE_IN_FL_IT);
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC , EXTI_SENSITIVITY_FALL_ONLY); //下降沿中断
中断线
INTERRUPT_HANDLER(EXTI_PORTC_IRQHandler, 5)
{
//disableInterrupts();
//if((GPIOC->IDR & 0x10) == 0){
ev01s_sta.rev_int_flag = 1;
//}
//enableInterrupts();
}
之前尝试在中断中判断引脚进入中断后的状态,用于区分同一端口下,是哪个脚引发的中断,经测试后发现
if((GPIOC->IDR & 0x10) == 0
该引脚状态读取需要较长时间,项目使用的模块最长只能触发一段0.5ms的低电平时间,经测试,能够成功通过判断语句的概率只有20%,将以上判断语句取消后可以解决,好在我的项目该端口上只有这一个中断线,所以这个问题没有太大的影响
下降沿事件
网友评论