[STM32U0] STM32U083 Cube FW低功耗样例代码探讨

[复制链接]
900|2
 楼主| xhackerustc 发表于 2024-5-22 00:07 | 显示全部楼层 |阅读模式
开搞STM32U083的低功耗测评。阅读datasheet和例子代码有些发现。

代码在Projects/NUCLEO-U083RC/Examples/PWR/PWR_STOP0/Src/main.c, 在进入Stop0模式前停掉了systick, 代码和注释是这么写的:

  1.     /* Suspend Tick increment to prevent wakeup by Systick interrupt.         */
  2.     /* Otherwise the Systick interrupt will wake up the device within 1ms     */
  3.     /* (HAL time base).                                                       */
  4.     HAL_SuspendTick();

  5.     HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI);



但是阅读datasheet其实可以发现HAL_SuspendTick()是多余的,注释也不对,因为Stop0模式下,systick已经不能唤醒了。事实上,笔者删除HAL_SuspendTick()后测试Stop0进入正常,也不按User键是不会唤醒的。
提议STM32官方更新下代码解决这一点小小问题
 楼主| xhackerustc 发表于 2024-6-23 00:15 | 显示全部楼层
这个问题找到答案了:结论是HAL_SuspendTick()还是必须的,其实是概率问题,主要防止代码运行wfi指令但还没进stop0模式过程中恰好来了systick中断,这个概率相当小
jf101 发表于 2024-6-23 15:25 | 显示全部楼层
其实一般情况下按照实际的的案例进行移植程序就好毕竟有时候一些问题无法预料到
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

166

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部