STM32低功耗模式

一、低功耗模式介绍

STM32 的低功耗模式有 3 种:

1)睡眠模式(CM3 内核停止,外设仍然运行)

2)停止模式(所有时钟都停止)

3)待机模式(1.8V 内核电源关闭)

在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要 2uA 左右的电

流。停机模式是次低功耗的,其典型的电流消耗在 20uA 左右。最后就是睡眠模式了。

二、待机模式

待机模式可实现 STM32的最低功耗。该模式是在 CM3 深睡眠模式时关闭电压调节器。整个 1.8V 供电区域被断电。PLL、HSI 和 HSE 振荡器也被断电。SRAM 和寄存器内容丢失。仅备份的寄存器和待机电路维持供电。

从待机模式唤醒后的代码执行等同于复位后的执行(采样启动模式引脚,读取复位向量等)。电源控制/状态寄存器(PWR_CSR)将会指示内核由待机状态退出。在进入待机模式后,除了复位引脚以及被设置为防侵入或校准输出时的 TAMPER 引脚和被使能的唤醒引脚(WK_UP 脚),其他的 IO 引脚都将处于高阻态。

三、代码实现

将PA0配置位外部中断

将PA0配置位上升沿触发

cpp 复制代码
// 系统进入待机模式
static void PWR_Enter_Standby(void)
{
	__HAL_RCC_PWR_CLK_ENABLE(); // 使能 PWR 时钟
	__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); // 清除 Wake_UP 标志
	HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); // 设置 WKUP 用于唤醒
	HAL_PWR_EnterSTANDBYMode(); // 进入待机模式
}

然后MCU进入待机模式之后按下WKUP按钮,此时产生一个上升沿,然后退出待机模式。

相关推荐
FreakStudio38 分钟前
做了个Claude Code CLI 电子宠物:程序员的实体监工代码搭子
python·单片机·嵌入式·面向对象·并行计算·电子diy·电子计算机
芯岭技术3 小时前
PY32L020系列32位MCU,超低功耗、高性价比,支持三种低功耗模式
单片机·嵌入式硬件
危桥带雨7 小时前
RTC理论知识
stm32·单片机·嵌入式硬件·实时音视频
ElfBoard9 小时前
飞凌精灵(ElfBoard)技术贴|如何在RK3506开发板上实现UART功能复用
大数据·linux·人工智能·驱动开发·单片机·嵌入式硬件·物联网
踏着七彩祥云的小丑10 小时前
嵌入式——认识电子元器件——二极管系列
单片机·嵌入式硬件
Jack_022010 小时前
基于51单片机的智能电动窗帘控制OLED显示设计
单片机·嵌入式硬件·51单片机·智能家居·oled显示·电动窗帘
sz49723859910 小时前
vscode多种编译环境共存的方法
ide·vscode·stm32·编辑器·esp32
摘星台10 小时前
linux环境对stm32单片机进行程序烧录
linux·stm32·单片机
Joseph Cooper11 小时前
STM32MP157 Linux驱动学习笔记(三):系统级驱动框架(UART/PCIe)
linux·stm32·学习
森G11 小时前
STM32F103C8T6工程---标准库版usart2写回显
stm32·单片机