我正在我的 bl072z lora 板上测试低功耗模式,我调用低功耗模式功能,当我从这种状态唤醒时(在计时器设置为 20 秒后),LED 闪烁,一切正常,但如果我打印一条消息使用 PRINTF 代替闪烁导致知道板是否唤醒我从未进入低功耗模式,只是在终端中看到 PRINTF 消息,为什么我不能使用 PRINTF 和低功耗功能?
//does not works
while(1)
{
LPM_EnterLowPower( );
PRINTF("woke up\n\r");
}
//works
while(1)
{
LPM_EnterLowPower( );
BSP_LED_Toggle(LED_GREEN);
}
//works
while(1)
{
LPM_EnterLowPower( );
PRINTF("woke up\n\r");
HAL_Delay(500); //works with this delay but i don't know why
}
//low power function:
void LPM_EnterLowPower(void)
{
HAL_PWR_EnterSTOPMode ( PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI );
}
我使用“唤醒”消息知道我是否退出睡眠模式,我调用低功耗功能,20 秒后我希望在终端中看到“唤醒”一次,然后再次进入睡眠并重复该过程,一切正常,但不能打印消息,在终端我只能看到(无限期):
woke up
woke up
woke up
woke up