STM32F103 低功耗模式STOP唤醒问题

int main(){
    SysTick_Init(72);
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    LED_Init();
    USART1_Init(9600);
    KEYBOARD_Init();
    My_EXTI_Init();    
    
    while(1)
    {
        printf("5\r\n");
        led1=0;
        delay_ms(1000);
        
        printf("4\r\n");
        led1=1;
        delay_ms(1000);
        
        printf("3\r\n");
        led1=0;
        delay_ms(1000);
        
        printf("2\r\n");
        led1=1;
        delay_ms(1000);
        
        printf("1\r\n");
        led1=0;
        delay_ms(1000);
        
        printf("Stop \r\n");

        Enter_Stop_Mode();
        printf("唤醒成功\r\n");
        
    }
}

主函数在一系列初始化后开始5秒倒数,最后进入stop模式。
使用外部中断(下键)唤醒,唤醒后打印_“唤醒成功”_。

void EXTI3_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line3)==1)
    {
        delay_ms(10);
        if(KEY_DOWN==0)
        {
            USART1_Init(9600);
            printf("唤醒成功\r\n");
        }
    }
    EXTI_ClearITPendingBit(EXTI_Line3);
}

退出stop模式后应该从进入stop模式的代码处继续,但串口调试助手的结果如图:

img

给我的感觉是按一下唤醒一下,这是怎么回事啊?

按一下进一次中断,然后打印一次。你加一个标志记录当前是否处于休眠状态,休眠了再打印