开搞STM32U083的低功耗测评。阅读datasheet和例子代码有些发现。
代码在Projects/NUCLEO-U083RC/Examples/PWR/PWR_STOP0/Src/main.c, 在进入Stop0模式前停掉了systick, 代码和注释是这么写的:
/* Suspend Tick increment to prevent wakeup by Systick interrupt. */
/* Otherwise the Systick interrupt will wake up the device within 1ms */
/* (HAL time base). */
HAL_SuspendTick();
HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);
但是阅读datasheet其实可以发现HAL_SuspendTick()是多余的,注释也不对,因为Stop0模式下,systick已经不能唤醒了。事实上,笔者删除HAL_SuspendTick()后测试Stop0进入正常,也不按User键是不会唤醒的。
提议STM32官方更新下代码解决这一点小小问题
|