主題 | 內容 | 教學目的/擴展視頻 |
---|---|---|
低功耗模式 | 什么是低功耗,模式介紹,切換方法。 | 為電池設備開發做準備。 |
師從洋桃電子,杜洋老師
📑文章目錄
- 一、低功耗模式概述
- 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×V2×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)