控制/MCU
待机模式用于通过掉电复位实现最低功耗。内部稳压器关闭,因此 VCORE 域断电。PLL、MSI RC、HSI16 RC 和 HSE 晶体振荡器也被关闭。
RTC 可以保持活动状态(带 RTC 的待机模式,不带 RTC 的待机模式)。
欠压复位 (BOR) 在待机模式下始终保持有效。
待机模式下每个 I/O 的状态可以通过软件选择:带内部上拉、内部下拉或悬空的 I/O。
可以使用 SYS_WKUP 引脚、 RTC事件(闹钟或定时器)、IWDG或 NRST 引脚中的外部复位将系统从待机模式唤醒。
从待机模式唤醒后,程序以与复位后相同的方式重新开始执行(引导引脚采样、选项字节加载、获取复位向量等)。
6.2 HAL库工作流程总结
当退出待机或关机模式时,VCORE 域中的所有寄存器都设置为其复位值。
6.3配置待机模式↑
从 EXTI 入门[1]打开项目
打开 main.c
如果您打算使用 SYS_WKUP 引脚唤醒系统,请添加以下代码行以清除唤醒标志。否则,待机模式只会进入一次。
/* 初始化所有已配置的外设 */
/* USER CODE BEGIN 2 */
__HAL_PWR_CLEAR_FLAG ( PWR_FLAG_WU );
/* 用户代码结束 2 */
添加进入待机模式的功能
/* 无限循环 */
/* USER CODE BEGIN WHILE */
while ( 1 )
{ /* USER CODE END WHILE */
/* 用户代码开始 3 */
HAL_Delay ( 2000 );
HAL_PWR_EnterSTANDBYMode ();
}
/* 用户代码结束 3 */
6.4编译烧录↑
单击构建按钮
点击运行按钮执行
6.5测量电流消耗↑
参考数据表[4],在 25°C 和 VDD = 3V 的待机模式下,电流消耗应为 150nA
使用 STM32Cube Monitor-Power [5],我们测量了:
全部0条评论
快来发表一下你的评论吧 !