主题 | 内容 | 教学目的/扩展视频 |
---|---|---|
低功耗模式 | 什么是低功耗,模式介绍,切换方法。 | 为电池设备开发做准备。 |
师从洋桃电子,杜洋老师
📑文章目录
- 一、低功耗模式概述
- 1.1 为什么需要低功耗模式?
- 1.2 基本实现原理
- 二、低功耗模式的本质
- 2.1 单片机功耗构成
- 2.2 节能核心策略
- 三、STM32F103三大低功耗模式详解
- 3.1 睡眠模式(Sleep Mode)
- 3.2 停机模式(Stop Mode)
- 3.3 待机模式(Standby Mode)
- 四、模式对比与选择指南
- 五、唤醒机制实现
- 5.1 典型唤醒源配置
- 5.2 外部中断唤醒示例
- 六、省电原理深度解析
- 6.1 动态功耗控制
- 6.2 静态漏电流优化
- 七、应用场景与设计建议
- 7.1 智能穿戴设备方案
- 7.2 农业监测系统
- 八、常见问题解答
- 九、相关资源

一、低功耗模式概述
1.1 为什么需要低功耗模式?
- 电池供电需求:物联网设备、穿戴设备等对续航有严格要求
- 能源效率优化:减少无效功耗,提升系统整体能效比
- 环保要求:符合现代电子产品绿色节能的设计理念
1.2 基本实现原理
通过分级关闭功能模块实现阶梯式节能:
正常模式 → 睡眠模式 → 停机模式 → 待机模式10mA 2mA 20μA 2μA
二、低功耗模式的本质
2.1 单片机功耗构成
功耗类型 | 占比 | 典型值 | 影响因素 |
---|---|---|---|
动态功耗 | 60-70% | 6-7mA | 时钟频率、外设工作状态 |
静态功耗 | 30-40% | 3-4mA | SRAM保持、IO口漏电流 |
2.2 节能核心策略
三、STM32F103三大低功耗模式详解
3.1 睡眠模式(Sleep Mode)
配置寄存器:SCB->SCR
__WFI(); // 等待中断唤醒
__WFE(); // 等待事件唤醒
特征:
- 仅关闭ARM内核
- 外设保持运行
- 唤醒时间<1μs
适用场景:实时性要求高的间歇工作设备
3.2 停机模式(Stop Mode)
配置寄存器:PWR->CR
PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
特征:
- 关闭CPU+时钟系统
- 保持SRAM内容
- 典型唤醒时间10μs
- 支持多种唤醒源:EXTI/RTC/USB等
适用场景:智能门锁、无线传感器节点
3.3 待机模式(Standby Mode)
配置寄存器:PWR->CSR
PWR_EnterSTANDBYMode();
特征:
- 完全断电(仅备份域供电)
- SRAM内容丢失
- 唤醒后系统复位
- 最低功耗2μA
适用场景:环境监测设备(每1小时唤醒采集)
四、模式对比与选择指南
对比项 | 睡眠模式 | 停机模式 | 待机模式 |
---|---|---|---|
功耗 | 2mA | 20μA | 2μA |
唤醒时间 | <1μs | 10μs | 复位时间 |
SRAM保持 | 保持 | 保持 | 丢失 |
唤醒源 | 所有中断 | EXTI/RTC/USB | WKUP/RTC |
代码连续性 | 继续运行 | 继续运行 | 系统复位 |
典型应用 | 实时控制系统 | 智能家居设备 | 环境监测设备 |
五、唤醒机制实现
5.1 典型唤醒源配置
// RTC闹钟唤醒配置
RTC_SetAlarm(RTC_GetCounter() + 3600); // 1小时后唤醒
RTC_ITConfig(RTC_IT_ALR, ENABLE);
5.2 外部中断唤醒示例
// PA0配置为唤醒引脚
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOA, &GPIO_InitStructure);EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_Init(&EXTI_InitStructure);
六、省电原理深度解析
6.1 动态功耗控制
P = C×V²×f
通过降低时钟频率(f)或工作电压(V)实现节能
6.2 静态漏电流优化
- 关闭未使用外设时钟
- 配置未使用IO口为模拟输入模式
- 禁用调试接口(SWD/JTAG)
七、应用场景与设计建议
7.1 智能穿戴设备方案
7.2 农业监测系统
- 使用待机模式+RTC定时唤醒
- 每2小时采集一次温湿度数据
- 数据通过LoRa无线发送后立即休眠
八、常见问题解答
Q1:如何测量实际功耗?
- 使用高精度万用表串联测量
- 推荐使用Joulescope等专业仪器
Q2:唤醒后外设需要重新初始化吗?
- 停机模式:需要重新初始化时钟系统
- 待机模式:需要完全重新初始化
九、相关资源
[1] 洋桃电子B站课程-STM32入门100步
[2] STM32官方文档手册
[3] STM32F103固件函数库用户手册(中文)
[4] 低功耗模式原理.pptx
💬 技术讨论(请在评论区留言~)
📌 下期预告:下一期将探讨低功耗模式程序分析,欢迎持续关注!
点击查阅🔍往期【STM32专栏】文章
版权声明:本文采用[CC BY-NC-SA 4.0]协议,转载请注明来源
实测开发版:洋桃1号开发版(基于STM32F103C8T6)
更新日志:
- v1.0 初始版本(2025-04-02)