你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

《STM32U3线上课程》学习笔记+01 STOP3模式使用RTC唤醒流程

[复制链接]
EPTmachine 发布时间:2025-12-18 18:20

学习官方关于U3系列的低功耗介绍后,使用NUCLEO-U385RG-Q演示如何使用RTC定时器从STOP3模式唤醒MCU。

1、使用CubeMX创建工程

选择NUCLEO-U385RG-Q创建演示工程 CubeMX_MCU_Select.png

CubeMX_MCU_Select2.png

NUCLEO-U385RG-Q版上有板载LSE晶振可用于低功耗模式下的MCU唤醒。在RCC配置中选择LSE时钟源为外部低速晶振。 U3_LSE.png

RCC_LSE_Clock_Source.png

开启RTC唤醒,并设置RTC唤醒时钟周期为1HZ,计数器设置为1,实现每2秒唤醒一次。

RTC_WakeUp_Settings.png

同时使能RTC的中断。

RTC_WakeUp_Interrupt.png

2、功能实现

CubMX 创建工程时目前无法选择SMPS供电,在代码中添加以下带代码,设置系统供电为SMPS以降低功耗。

/* Configure the system Power Supply */
  if(HAL_PWREx_ConfigSupply(PWR_SMPS_SUPPLY) != HAL_OK)
  {
    Error_Handler();
  }

STM32U3系类的片上RAM共有256KB,在STOP模式中可以通过调用指令来关闭SRAM的通电状态,从而节省几百nA的电流消耗。

RAM_structure.png

查看U3的参考手册中关于PWR_CR2寄存器的说明,可以控制在STOP3模式中SRAM中的数据是否保存

PWR_CR2.png

以下的代码实现STOP模式下Flash、SRAM1以及SRAM2中的Page2、Page3处于关闭状态,只保存SRAM2的Page1 32KB空间中的数据。并启用RTC唤醒中断。

/*Flash in power down mode during Stop mode - by default after reset */
  HAL_PWREx_DisableFlashFastWakeUp();

  /*Reduce SRAM2 retention in Stop mode to 32 kB*/
  HAL_PWREx_DisableRAMsContentStopRetention(PWR_SRAM2_PAGE2_STOP_RETENTION); // reduction -600nA
  HAL_PWREx_DisableRAMsContentStopRetention(PWR_SRAM2_PAGE3_STOP_RETENTION);
  HAL_PWREx_DisableRAMsContentStopRetention(PWR_FDCAN_USB_STOP_RETENTION);
  HAL_PWREx_DisableRAMsContentStopRetention(PWR_PKA_STOP_RETENTION);

  /*Put full SRAM1 in power down mode*/
  HAL_PWREx_EnableRAMsPowerDown(PWR_SRAM1_POWERDOWN); // reduction - 500nA

  /* Configure RTC wake up source for STop3 mode - RM Table 78. PWR wake-up source selection IN*/
  HAL_PWR_EnableWakeUpLine(PWR_WAKEUP_LINE7, PWR_WAKEUP_SELECT_3, PWR_WAKEUP_POLARITY_HIGH);

在while循环中,添加以下代码实现进入STOP3模式,并在RTC唤醒后,清楚唤醒标志位,再次进入STOP3模式的循环。

/*Clear all wakeup source flags*/
      __HAL_PWR_CLEAR_FLAG(PWR_WAKEUP_ALL_FLAG);

      /* Enter STOP 3 mode */
      HAL_PWR_EnterSTOPMode(PWR_LOWPOWERMODE_STOP3, PWR_STOPENTRY_WFI);

以上为使用STM32U3进入Stop3模式,并通过RTC唤醒的一般模板。

收藏 评论1 发布时间:2025-12-18 18:20

举报

1个回答
七七baba 回答时间:2026-4-9 17:05:00

使用内部的LSI也应该可以吧,我用的STM32U375,在STOP3模式下RTC不能唤醒,RTC我是这么配置的不行吗?image.png

所属标签

ST中文论坛活动

即日起开启活动话题入口,之后的活动统一都放在此处,欢迎大家的加入!


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版