STM32L431低功耗模式深度解析
STM32L431 低功耗模式详解
核心低功耗模式
STM32L431 提供 7 种低功耗模式,涵盖从轻度睡眠到深度关断的多种场景,具体模式如下:
1. 运行模式 (Run Mode)
LPRUN 模式进一步降低功耗(内核电压降低,CPU 频率限制为 2MHz):cite[6]2. 睡眠模式 (Sleep Mode)
3. 低功耗睡眠模式 (Low-power Sleep Mode)
4. 停止模式 (Stop Mode)
子模式:Stop 0、Stop 1、Stop 2
| 特性 | Stop 0 | Stop 1 | Stop 2 |
|---|---|---|---|
| 功耗 | 较高 | 中等 | 最低(约 10μA):cite[4] |
| 唤醒时间 | 最快 | 中等 | 最长 |
| 时钟保留 | HSI/HSE 关闭 | HSI/HSE 关闭 | 仅 LSE/LSI 保留 |
| 唤醒源 | 外部中断、RTC 等 | 减少部分外设唤醒 | 仅特定唤醒源 |
| SRAM 保留 | ✔️ | ✔️ | ✔️ |
| 内核电压调节 | 主稳压器(MR) | 低功耗稳压器(LPR) | LPR :cite[6] |
5. 待机模式 (Standby Mode)
6. 关机模式 (Shutdown Mode)
模式对比与选型建议
| 模式 | 功耗 | 唤醒时间 | 数据保留 | 典型应用场景 |
|---|---|---|---|---|
| 运行模式 (LPRUN) | 微安级 | 立即 | 全保留 | 低功耗持续运行(如传感器轮询) |
| 停止模式 (Stop 2) | ~10μA | 较长 | SRAM + 寄存器 | 周期性任务(RTC 定时唤醒) |
| 待机模式 | 2μA ~ 5μA | 长(复位) | SRAM2(可选) | 紧急事件唤醒(如按键报警) |
| 关机模式 | 0.1μA | 最长(复位) | 无 | 超长待机(电池供电设备) |
关键配置注意事项
-
GPIO 状态管理:
- 未使用的 GPIO 应配置为模拟输入或固定电平输出,避免浮空导致漏电流:cite[4]
- 晶振引脚需配置为模拟输入(若外部未连接晶振):cite[4]
-
时钟与电源控制:
- 停止模式下需关闭高速时钟(HSI/HSE):cite[6]
- 待机模式需启用 BOR(欠压复位)以保证唤醒可靠性:cite[5]
-
唤醒源配置:
- LPUART、LPTIM 等低功耗外设可在停止模式下唤醒 MCU:cite[2]
- 外部中断需配置为上升沿/下降沿触发模式:cite[8]
STM32L431 低功耗模式唤醒源详解
核心低功耗模式唤醒源对比
1. 停止模式 (Stop Mode)
| 子模式 | 唤醒源 | 特殊要求 |
|---|---|---|
| Stop 0 | – 任意 EXTI 中断(GPIO 引脚、RTC 闹钟/事件、COMP 比较器、LPUART、LPTIM1/2) – 独立看门狗(IWDG) |
– 需配置 GPIO 为外部中断模式(EXTI) – LPUART 需使能 HAL_UARTEx_EnableStopMode() |
| Stop 1 | – 与 Stop 0 相同,但部分高速外设不可用 | – 关闭不必要的外设时钟(如 ADC、DAC) |
| Stop 2 | – RTC 闹钟/事件 – EXTI 线 0-15(仅限特定低功耗引脚) – LPTIM1/2 |
– 仅 LSE/LSI 可用作 RTC 时钟源 – 需启用低功耗稳压器(LPR) |
2. 待机模式 (Standby Mode)
| 唤醒源 | 配置要点 |
|---|---|
| – WKUP 引脚(PA0 等特定引脚) | 需配置为上升沿触发,并使能 HAL_PWR_EnableWakeUpPin() |
| – RTC 闹钟/事件 | 需配置 RTC 时钟源(LSE/LSI)和闹钟寄存器 |
| – NRST 复位引脚 | 直接硬件复位 |
| – 独立看门狗 (IWDG) | 需提前配置 IWDG 超时时间 |
3. 关机模式 (Shutdown Mode)
| 唤醒源 | 限制条件 |
|---|---|
| – WKUP 引脚 | 仅特定引脚支持(如 PA0) |
| – NRST 复位引脚 | 完全复位系统 |
| – 备份域复位事件 | 需配置 RTC 或 TAMP 检测功能 |
唤醒源详细说明
GPIO 外部中断 (EXTI)
// 配置 PA0 为唤醒引脚(上升沿触发)
HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); // PA0 对应 WKUP1
HAL_PWREx_EnableGPIOPullUp(GPIOA, GPIO_PIN_0); // 避免浮空
总结
详细配置参考:STM32L4xx 参考手册 RM0394
作者:IFLY513