void EXTI1_IRQHandler(void)
{
delay_ms(10);
GPIO_ResetBits(GPIOA,GPIO_Pin_5);
GPIO_SetBits(GPIOA,GPIO_Pin_4);
if(EXTI_GetITStatus(EXTI_Line1) != RESET) //检查指定的EXTI1线路触发请求发生与否
{
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==1) //上电时PA1管脚会产生纹波,读取PA1防止数据被误清
{
memset(AK,0xff,16);
AK_number=2;
delay_ms(1000);
GPIO_ResetBits(GPIOA,GPIO_Pin_4);
}
EXTI_ClearITPendingBit(EXTI_Line1); //清除EXTI1线路挂起位
}
if(STOP_MODEL()) //判断是否进入STOP模式
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR , ENABLE);
PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
}
}
请教一个问题,STM32F103,进入STOP模式之后,通过中断唤醒,第一次可以通过中断进行唤醒,唤醒之后再次进入STOP模式,当第二次进入STOP模式之后,就再也无法进入此中断唤醒CPU
|