STM32F415外部中断触发过后,主函数不再运行,但触发功能正常
程序没有卡在中断里面,触发函数运行没问题,但触发过后,main中的函数就是不运行了
主函数如下:
int main(void)
{
/* LED 端口初始化 */
LED_GPIO_Config();
delay_init(168);
// key_config();
EXTIX_Init();
/* 控制LED灯 */
while (1)
{
// if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 1)
LED1( OFF ); // 亮
delay_ms(200);
// if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0)
LED1( ON ); // 灭
delay_ms(200);
// LED3( ON ); // 亮
// Delay(0xFFFF);
// LED3( OFF ); // 灭
//
// LED4( ON ); // 亮
// Delay(0xFFFFFF);
// LED4( OFF ); // 灭
}
}
复制代码
中断函数:
void EXTI0_IRQHandler(void)
{
static u8 a = 0;
u32 b = 0;
//消抖
while(b < 0xffff)//注释掉循环问题后正常
{
b = 0;
while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0) == 0)
{
b++;
// delay_ms(1);
}
}
a = !a;
GPIO_WriteBit(GPIOA, GPIO_Pin_10, a); //蜂鸣器翻转
EXTI_ClearITPendingBit(EXTI_Line0); //清除LINE0上的中断标志位
}
复制代码
但是这句:while(b < 0xffff)//注释掉循环问题后正常
有大神能解答么,多谢
|