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

STM32F103C8T6低功耗模式详解:如何选择和应用Sleep、Stop、Standby模式?

请添加图片描述

文章目录

  • 引言
  • 一、STM32F103C8T6低功耗模式概览
    • 1. 低功耗模式对比
  • 二、各模式详解与代码实现
    • 1. Sleep模式
    • 2. Stop模式
    • 3. Standby模式
  • 三、实战案例:基于GPIO触发的低功耗控制
    • 1. 需求描述
    • 2. 实现步骤
      • (1) 配置GPIO和外部中断
      • (2) 中断服务函数
      • (3) 主函数
  • 四、如何选择合适的低功耗模式?
    • 1. 决策树
    • 2. 典型应用场景
  • 五、注意事项
  • 六、总结


引言

在物联网设备、电池供电的传感器节点等场景中,低功耗设计是延长设备寿命的关键。STM32F103C8T6作为一款经典的Cortex-M3微控制器,提供了三种低功耗模式:Sleep、Stop和Standby。本文将深入解析这三种模式的特点、应用场景,并通过代码示例展示如何实现低功耗控制。


一、STM32F103C8T6低功耗模式概览

1. 低功耗模式对比

模式 功耗 唤醒源 恢复时间 RAM保持 系统状态
Sleep 任意中断/事件 极快 保持 CPU暂停,外设运行
Stop 外部中断、RTC、特定事件 较快 保持 时钟停止
Standby 极低 复位、RTC、WKUP引脚 丢失 系统复位

二、各模式详解与代码实现

1. Sleep模式

特点
- 功耗:约几mA(具体取决于运行的外设)。
- 唤醒方式:任何中断或事件均可唤醒。
- 恢复:从暂停处继续执行,无需重新初始化外设。

应用场景

  • 短暂休眠等待外部事件(如按键触发)。
  • 需要快速响应的周期性任务(如定时采集传感器数据)。

代码实现

// 进入Sleep模式
void Enter_Sleep_Mode(void) {
   
    // 设置SLEEPDEEP位为0(选择Sleep模式)
    SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk;
    // 执行WFI指令
    __WFI();
}

2. Stop模式

特点
- 功耗:约20μA(所有时钟停止,1.8V电源域关闭)。
- 唤醒方式:外部中断(EXTI)、RTC闹钟、NRST引脚复位。
- 恢复:需重新配置系统时钟(HSI默认启用),保留RAM和寄存器内容。

应用场景

  • 长时间休眠且需保存运行状态(如智能手表的待机模式)。
  • 需要低功耗但快速唤醒的场景(如无线传感器网络节点)。

代码实现

// 进入Stop模式(需配置PWR库)
#

相关文章:

  • 装饰器模式的C++实现示例
  • 【MySQL_06】表的相关操作
  • 使用PySpark进行大数据处理与机器学习实战指南
  • KUKA机器人:智能制造的先锋力量
  • linux网络编程中bind函数和accept函数的作用以及它们的第一次参数描述符的联系以及返回值的区别
  • C++设计模式-工厂模式:从原理、适用场景、使用方法,常见问题和解决方案深度解析
  • Flask 全栈学习指南
  • 如何创建数据库并添加数据,附带一些查询方法
  • Android UDP广播与监听
  • 探索链表的奥秘:C语言中的查找操作与链表打印
  • 为什么要使用前缀索引,以及建立前缀索引:sql示例
  • python中如何把dataframe转换为列表及其性能比较
  • 【模拟CMOS集成电路设计】带隙基准(Bandgap)设计与仿真(基于运放的电流模BGR)
  • 【氮化镓】高输入功率应力诱导的GaN 在下的退化LNA退化
  • 【C】初阶数据结构9 -- 直接插入排序
  • Compose 实践与探索二 —— 状态订阅与自动更新1
  • Blueprint —— 蓝图技术指南
  • 初始化E9环境,安装Sqlserver数据库
  • 分布式事务的原理
  • 贪心算法精解:用C++征服最优解问题
  • 欧盟官员:欧盟酝酿对美关税政策反制措施,包含所有选项
  • 环球马术冠军赛圆满落幕,是马术盛宴更是中国马产业强大引擎
  • 外交部就习近平主席将应邀对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典答问
  • “五一”假期客流增加,多地提升铁路运力并强化服务
  • 视频丨054B型护卫舰钦州舰南海实战化训练
  • 巴菲特批评贸易保护主义:贸易不该被当成武器来使用