当前位置: 首页 > news >正文

STM32 低功耗模式:SLEEP / STOP / STANDBY 怎么选

三种模式速览

模式电流(典型)CPUSRAM寄存器唤醒方式唤醒时间
SLEEP(睡眠)~10mA→~1mA保持保持任一中断几 μs
STOP(停止)~1mA→~110μA(低功耗调压器 PWR_LOWPOWERREGULATOR_ON);主调压器约 450μA保持保持EXTI / RTC几 μs
STANDBY(待机)~100μA→~2μA掉电掉电掉电RST / RTC / WAKE几 ms

SLEEP 模式

CPU 停转,外设继续工作(串口能收数据、定时器继续计数)。

// 进入 SLEEP HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI); // WFI = Wait For Interrupt,任一中断就会唤醒

适合:短暂空闲,比如等串口数据、等定时器。

STOP 模式

CPU 和外设都停止,SRAM 和寄存器内容保持。所有时钟停振(HSE/HSI 关了)。

// 进入 STOP HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);

唤醒后需要重新配置系统时钟

// EXTI 回调中唤醒 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { // 唤醒后先不动,main 里恢复时钟 } ​ // main 中 HAL_PWR_EnterSTOPMode(...); // 醒来后从这里继续执行 SystemClock_Config(); // 必须重新配时钟!

适合:几秒到几十秒的空闲。

STANDBY 模式

最省电。除了 RTC 和唤醒引脚,全都断电。醒来相当于复位——从 main 重新执行。

// 进入 STANDBY HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); // PA0 可唤醒 HAL_PWR_EnterSTANDBYMode();

醒来判断是否从 STANDBY 复位:

if (__HAL_PWR_GET_FLAG(PWR_FLAG_SB) != RESET) { __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SB); printf("Woke from STANDBY\r\n"); // 注意:STANDBY 唤醒后经历复位,需重新初始化串口等外设后方可 printf }

适合:电池供电、几分钟甚至几小时才工作一次的场景。

实测步骤

用万用表(mA 档)串在 VCC 回路里:

int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); printf("Entering STOP in 3s...\r\n"); HAL_Delay(3000); ​ // 进入 STOP HAL_SuspendTick(); // 暂停 SysTick(避免醒来后 HAL_Delay 出错) HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); ​ // 唤醒后 SystemClock_Config(); HAL_ResumeTick(); printf("Woke up!\r\n"); ​ while (1) HAL_Delay(1000); }

按下 PA0(带 EXTI),看电流从几 mA 降到几百 μA,再按一下回到几 mA。

选型指南

你想省电多久用哪个
等串口数据(< 1s)SLEEP
等按键输入(几秒~几分钟)STOP
传感器定时上报(几分钟~几天)STANDBY + RTC 唤醒
http://www.cnnetsun.cn/news/3319660.html

相关文章:

  • HBase 2.1.1 单机模式部署:Ubuntu 20.04 下 3 步配置与常见报错解决
  • 微前端全局状态共享:跨子应用通信的四种方案对比
  • 文件上传后模型行为异常?ChatGPT文档处理链路全追踪,精准定位3类静默失效场景
  • HPN 8.0 网络:下一代高性能网络架构解析
  • 国内主流AI工具对比:豆包、元宝、千问、Kimi、DeepSeek、MiniMax、GLM
  • 【仅开放72小时】ChatGPT文件分析底层协议逆向成果:首次披露multipart/form-data→embedding的11个中间态转换逻辑
  • PyCharm 中文插件安装失败排查:2种手动下载方案与版本匹配指南
  • Cursor AI多语言支持深度测评(2024最新版):实测12种编程语言兼容性、响应延迟与上下文保留率
  • Git 历史提交修复:3步批量修改作者信息,找回 GitHub 绿格子贡献
  • 梯度累积战术:小显存也能跑大 batch 的前提条件
  • Visual Studio Code 2024 配置:5 个必装插件提升 HTML/CSS 开发效率 300%
  • 如何用Dissertate快速完成专业毕业论文排版:终极LaTeX模板指南
  • Cython加速Python的实战模式:从类型声明到性能基准的完整流程
  • 职场“怀才不遇”者的生存智慧:从屈原到当代,一条可操作的路线(技术大拿情绪管理)
  • Kali Linux工具一键安装指南:用katoolin快速搭建渗透测试环境
  • 英雄联盟玩家的智能管家:用本地自动化工具重塑你的游戏体验
  • VideoDownloadHelper终极指南:免费下载网页视频的完整教程
  • 018、宽动态范围HDR:多帧融合、DOL-HDR与Staggered HDR的时序与融合策略
  • 3分钟解锁Windows远程桌面多用户连接:RDPWrap配置文件终极指南
  • 告别命令行困扰:5分钟掌握安卓APK图形化签名工具终极指南
  • Windows/Linux 双系统网络诊断:5 步定位“网关通但 IP 不通”的差异与共性
  • Linux系统安全架构与权限管理:从基础到实战
  • 如何将闲置电视盒子改造为专业级Linux服务器:amlogic-s9xxx-armbian终极指南
  • 从数据到图形:gggenomes处理BED、GFF和PAF文件的终极指南
  • Laguna-XS-2.1-bf16未来路线图:模型优化、功能扩展与生态发展的前瞻分析
  • OmenSuperHub:3大优势解决惠普游戏本性能限制的终极方案
  • 抖音博主动态监控:5分钟搭建专属内容提醒系统
  • 基于价值认同的需求侧电能共享分布式交易策略附Matlab代码
  • 【Cursor AI多语言切换终极指南】:20年IDE专家亲授5大避坑法则与3步无缝切换实战技巧
  • Fort Firewall流量统计系统:高性能实时网络监控架构深度解析