低功耗策略的收益与风险平衡
搞嵌入式或者物联网的朋友应该都有体会,低功耗策略这三个字听起来像是基本功,真正落地的时候往往是一地鸡毛。电池供电的设备省电是天经地义的事,但“省”到什么程度、用哪种方式“省”、“省”完之后系统还稳不稳,这里面每一步都是取舍。前阵子我把一个本来用着挺稳的采集终端重新做了一遍功耗优化,表面上数据好看多了,结果实际跑起来反而把整个产品节奏打乱了。这篇文章就把我踩过的坑和验证过的方法摊开讲一讲,给正在跟低功耗策略较劲的同行一个参照,尤其是那些刚入行、打算从“能跑”走向“能省”的项目,可以参考一下我的思路,能少走不少弯路。
低功耗策略的本质不复杂,它就是在“少干活”和“把活干好”之间找一个平衡点。MCU降频、休眠、关闭外设、降低无线发射功率、拉长采样间隔,这些都是常见手段,每一项都能带来可量化的电流下降,但每一项也都有自己隐藏的代价。这篇文章我会把收益怎么算、风险藏在哪、平衡怎么找、验证怎么做,一条一条拆开讲清楚,最后再分享一些我自己项目中真实的故障排查记录,基本都是常规文档里不会写的东西。
1. 低功耗收益从哪里来:先看懂功耗账本再动手
1.1 功耗不是平均的,是“瞬间”堆出来的
很多人一上来就想把休眠电流做到微安级,折腾半天主控芯片的数据手册,结果整机功耗还是下不去。我建议先建立一个观念:低功耗设计不是盯着“休眠电流”一个数字,而是要算一张完整的能量账。设备从开机到下一次开机,中间经历的每个状态——运行、空闲、休眠、唤醒、通信、采集——都在消耗能量,最终决定电池能用多久的不是峰值电流,也不是单一状态电流,而是所有这些状态电流对时间的积分。
我用一个具体的例子来说明。一个NB-IoT温湿度采集器,正常工作流程是:每隔15分钟醒来一次,采集传感器数据,通过NB-IoT模组上报,然后继续休眠。从功耗角度看,这个设备至少有四个状态:休眠状态(电流约10uA,持续约895秒)、运行状态(电流约10mA,持续约100ms)、通信状态(电流约200mA,持续约2秒)、采集状态(电流约5mA,持续约50ms)。如果把每个状态的电量算出来再除以总时间,得到的平均电流大约是0.53mA。一颗3000mAh的锂电池,理论上能撑5600小时,差不多230多天。但如果把通信时间从2秒拉长到4秒,平均电流立刻跳到0.85mA,续航直接降到3500小时。通信时间每多1秒,代价就是几十天的续航。
这个账算清楚之后,你就会明白一个反直觉的结论:在低功耗系统里,真正吃掉电量的大头往往是那些“只出现几秒钟”的高功耗状态,而不是一直存在的休眠电流。所以做低功耗优化的第一步,不是拿着万用表测休眠电流,而是把整个工作周期的功耗分布画出来,看清能量究竟花在哪一段。
1.2 收益可量化:把功耗优化指标拆成三层
我习惯把低功耗优化的收益拆成三个层面,每一层都有不同的关注指标和衡量方式,千万不要混在一起谈:
- 第一层是待机功耗优化。关注的是设备处于深度休眠状态时的电流,目标是把不必要的漏电全部找出来,压到芯片手册允许的极限值。这一层相对容易做,常规手段是关闭不用的外设时钟、把GPIO设为固定电平、使用芯片支持的深度睡眠模式,用万用表串在供电回路上就能测。
- 第二层是运行功耗优化。关注的是设备处于工作状态时的电流,手段包括动态降频、按需开启外设、优化代码执行效率(减少不必要的空转和轮询),目标是在完成同样功能的前提下,让工作电流尽量小。
- 第三层是系统级能效优化。关注的是完成一次完整业务动作(比如一次数据采集+上报)所消耗的总能量。这层最容易被忽视,但收益空间恰恰最大,因为通信协议的选择、采样策略的编排、数据打包方式的优化,都可能带来几倍甚至十几倍的能量差异。
三层指标各有各的测试方法和优化手段,但如果只盯着第一层,把休眠电流做到极致,第二层和第三层一塌糊涂,整机表现反而不会好。正确思路是先从第三层看全局,再从第一层和第二层抠细节,这样效率最高。
1.3 电池选型与能量预算:把理论续航和实际容量的差距算清楚
要谈收益,就必须先把电池这笔账确定下来。很多人做产品时习惯直接拿电池标称容量除以平均电流来估算续航,这样算出来的数字通常过于乐观,因为电池有两个关键特性常被忽略:一是可放电容量会随放电电流增大而减小,二是电池自放电率在高温环境下会显著上升。
我自己的做法是设计阶段就留出至少30%的容量裕量,并且把电池的截止电压设置在厂家推荐的范围内,不要压榨最后一滴电。比如3000mAh的锂亚电池,标称容量是在2.0V截止电压、小电流放电条件下测出来的,如果设备工作电流较大或截止电压设置得偏高,实际可用容量可能只有2200mAh。这一步没有算清楚,后面一切优化指标都会失真。
2. 常用低功耗手段与隐藏代价:每一种“省电”都有价码
2.1 降低主频:省的不是“电费”,是“时间”
动态降频是MCU低功耗最常用的手段,也是风险最容易被低估的手段。MCU的功耗大体上跟供电电压的平方和时钟频率成正比,把主频从64MHz降到16MHz,理论上动态功耗能降到原来的四分之一左右,换来的代价是执行时间变长。看似只是多花几毫秒,但放到实际系统里会产生连锁反应:如果降频后任务执行时间超过了调度周期,或者跟外部设备的时序要求冲突,系统就会悄悄出问题。
我之前见过一个项目,工程师把MCU主频从48MHz改到8MHz来省电,电流确实降了不少,但I2C通信开始间歇性出错,原因就是I2C时序在低速时钟下出现了边沿抖动,正好踩到了从设备设置的时间窗口边缘。排查了整整两天,最后定位到是降频导致的时序余量不足。这类问题不会每次都出现,是典型的“偶发故障”,特别难查。
所以降频的正确姿势不是一刀切,而是根据任务实际需求动态调整:需要大量计算的瞬间跑满主频,计算完成后立刻降频等事件,再配合中断唤醒而不是轮询等待,这样既保留了性能,又拿到了功耗收益。关键原则是:降频的对象应该是“空闲等待”的时间段,而不是“实际执行任务”的时间段。
2.2 深度休眠与唤醒延迟:省下来的电可能不够等
几乎所有的低功耗MCU都支持深度休眠模式(比如STM32的Stop模式、nRF52的System OFF模式),这些模式能把电流压到微安甚至纳安级别。但很少有人提醒你:调用休眠函数不等于立刻进入休眠,退出休眠也不等于CPU立刻恢复全速运行。唤醒后通常需要一个稳定时间,时钟恢复、电源域重新上电、外设重新初始化,这些都要消耗时间和电量,如果唤醒后只是做一件小事又立刻睡回去,唤醒的开销可能比省下的电量还大。
我曾经测过一款MCU,系统从收到唤醒中断到外设完全就绪,花了将近1.2ms,而设备每次唤醒只是为了读一个GPIO的状态,读取完就继续睡。这样一次循环里,真正的GPIO读取只需要几十微秒,但唤醒初始化消耗了1.2ms。如果按电流算,这段初始化时间的平均电流是5mA左右,直接导致睡眠带来的收益被吃掉了一半以上。后来我改成用RTC定时唤醒、减少不必要的初始化和降低唤醒频率,情况才好转。
这个教训说明一个道理:选择休眠深度不能越深越好,要根据业务模型决定——如果唤醒频率高、每次唤醒干活时间短,浅休眠反而更合适;如果唤醒频率低、每次干活时间长,深度休眠才是正确的选择。
2.3 关闭外设与GPIO策略:最容易被忽略的漏电路径
MCU进入休眠后,外设的功耗基本都关了,但漏电往往出在你看不见的地方——GPIO引脚。很多人忽略了一个细节:GPIO如果保持高阻输入态,引脚电压会漂移不定,导致引脚保护二极管反复导通,产生额外漏电;GPIO如果配置成输出高,但外部设备供电已经断开,电流就会反向灌入芯片。这两种情况在数据手册上都不会直接写,但实际测下来可能让休眠电流从5uA飙到50uA以上。
我现在的标准做法是:进入休眠前,把所有用不到的GPIO统一配置成模拟输入或输出低电平,并且确保外部电路不会因此出现冲突。对于必须保持电平的引脚(比如给传感器供电的电源开关引脚),要明确配置成输出模式并拉低或拉高,不能让它飘着。做完这一步,很多板子的休眠电流能下降一个数量级。
2.4 降低无线发射功率:省的是电量,费的是时间
无线通信模块(Wi-Fi、BLE、LoRa、NB-IoT等)是系统里的功耗大户,于是很多人第一反应是降低发射功率来省电。但从系统角度看,降低发射功率可能带来更严重的后果:发射功率降低意味着信号强度下降、重传概率上升,而每次重传都会消耗能量和时间。如果降低功率导致重传次数翻倍,最终消耗的总能量反而比满功率发送一次还要多。
我在一个LoRa项目中做过实测:发射功率22dBm时,一次上报平均消耗12.4mJ;把发射功率降到14dBm后,单次发送耗能降到了6.8mJ,但因为有两次重传,总耗能反而变成了20.1mJ。这不是说低功率发射不能用,而是说功率调优必须建立在真实信道环境测试的基础上,用吞吐率、重传率、RSSI等完整指标评估,而不是只看单次发送的电流。需要特别提醒的是,如果测试环境比真实部署环境简单得多,你在实验室里得到的“最优功率”到了现场很可能变成“灾难配置”。
2.5 权衡表:常见低功耗手段的收益与风险速查
| 低功耗手段 | 典型收益 | 隐藏代价 | 适用场景 | 关键注意事项 |
|---|---|---|---|---|
| 动态降频 | 功耗降为1/2到1/4 | 执行时间变长、外设时序风险 | 任务执行后有明显空闲等待 | 按需调频,不要一刀切降频 |
| 深度休眠/停止模式 | 电流降到uA级 | 唤醒延迟、时钟恢复时间 | 唤醒频率低、任务执行时间长的场景 | 根据唤醒频率选择合适休眠深度 |
| 关闭外设时钟/电源域 | 静态功耗明显下降 | 外设重新初始化时间开销 | 大部分MCU应用 | 逐个外设确认,避免漏开关联时钟 |
| GPIO状态优化 | 静态功耗下降5-50uA | 可能导致外部电路异常 | 所有休眠系统 | 统一配置成模拟输入或输出低 |
| 降低无线发射功率 | 单次发送功耗下降 | 重传率上升、延迟变大 | 信号余量充足、信道稳定的环境 | 以丢包率和重传率为准评估,不能只看单次耗能 |
| 拉长采样/上报间隔 | 系统级能效大幅提升 | 数据实时性下降 | 对数据延迟容忍度高的场景 | 先跟业务方确认数据时效性要求 |
这张表值得贴在工位上好好看,做功耗设计之前对照一下,能少踩很多坑。
3. 实操过程与参数平衡:我如何用一块锂电池跑三个月的设备
3.1 项目需求与约束
我最近完成的一个项目,是一个土壤墒情监测节点,使用一节3.6V锂亚电池供电(标称容量7200mAh),要求至少连续工作3个月以上。设备的核心业务是:每隔30分钟采集一次土壤湿度、温度、电导率数据,通过LoRa发送给网关,然后回到休眠状态。LoRa通信距离要求覆盖半径2公里左右,设备部署在野外,没有外部供电,也不能频繁更换电池。
按照这个要求,平均电流必须控制在3.3mA以下(7200mAh / 90天 / 24小时 ≈ 3.3mA),这是系统设计的总目标。如果留出20%的余量,则实际平均电流目标应设为2.6mA左右。基于这个预算,我开始倒推每个环节的电流和时间预算。
3.2 选型与设计:每个元器件的“暗电流”都要审
MCU选型我用了一款支持多级低功耗模式的ARM Cortex-M0+芯片,深度休眠模式电流典型值为1.8uA,支持2us以内快速唤醒,这对我们这个业务模型非常适合,因为唤醒频率低但每次唤醒都要干完整的活。LoRa模块选用SX1268的国产方案,该模块在休眠模式下的电流为0.7uA,发射模式在22dBm下电流为120mA,接收状态为5mA,不同参数组合差异巨大,是设计中的关键变量。
传感器方面选了土壤三合一传感器,它支持“测量完成后自动断电”模式,测量时最大电流为20mA,持续约40ms,待机时虽然有内部的电源管理,但实测仍有0.5mA-1mA的静态漏电,这个数字对于微安级的休眠系统来说是不可接受的。所以我在硬件设计上增加了MOSFET电源开关,用MCU的一个GPIO控制传感器供电,只在采集前的100ms打开电源,采集完成后立即关闭。这一点改动,让系统的休眠电流从大约12uA降到了2.2uA,是整个项目中单次改动收益最大的一步。
电源管理还有一个容易踩坑的地方:LDO自身的静态电流。很多便宜的LDO静态电流在微安级以上,如果你是电池供电且长期处于休眠状态,LDO的静态电流甚至可能超过MCU的休眠电流。我这次选用了一款静态电流只有约0.8uA的LDO,才保证了整体的休眠电流预算。
3.3 参数计算:每个阶段的时间预算与电流预算
根据需求和实测数据,我把整个工作循环分成了五个阶段,并做了详细的预算表:
| 阶段 | 持续时间 | 平均电流 | 单次循环耗电(能量) | 占比 |
|---|---|---|---|---|
| 深度休眠 | 约1795秒 | 2.2uA | 约1.1mJ | 2.2% |
| RTC唤醒/系统启动 | 3ms | 8mA | 约0.07mJ | 0.1% |
| 传感器上电+测量 | 120ms | 12mA | 约4.3mJ | 8.4% |
| MCU数据处理+组包 | 30ms | 10mA | 约0.9mJ | 1.7% |
| LoRa发射 | 500ms | 105mA | 约157.5mJ | 87.6% |
这张表让我看清了一个残酷的事实:整个工作循环里,将近九成的能量都消耗在LoRa发射上。所以对于这个项目来说,花多少精力去优化MCU休眠电流都不是重点,LoRa发射的500ms才是真正应该花精力抠的地方。这个结论和大多数人的直觉相反——大家通常觉得低功耗的主要工作在MCU休眠上,但实际上系统的能耗瓶颈往往在高功耗外设的“单次使用时长”上。
基于这个认识,我把优化重点从MCU微安级抠电流转移到了两个方向:一是把LoRa的数据包长度从原来的22字节压缩到14字节,因为LoRa的空中传输时间跟数据包长度强相关,包变短了,发射时间就能压缩。实测数据包从22字节缩短到14字节后,发射时间从620ms降到了约430ms,单次发射耗能从175mJ降到122mJ,节省了30%;二是检查了发射功率与距离的关系,项目部署环境比较开阔、信号质量好,我把发射功率从22dBm降到了19dBm,实测丢包率从0.5%变成0.8%,仍然满足可靠性要求,而发射电流从120mA降到了95mA,单次发射耗能进一步下降。
这两项加在一起,单次工作循环的总耗能就从大约164.8mJ降到了约82.4mJ,几乎减半。最终平均电流算下来约为0.31mA,理论续航约966天,考虑到电池自放电和低温容量衰减,实际按60%效率估算,也能跑580天左右。这已经完全超出“3个月”的设计要求了,所以我最后甚至把上报间隔从30分钟缩短到了15分钟,换来了更密集的数据采集和更实时的监测能力。
3.4 实测结果与基线对比
设计完成后,我用精确到0.1uA的电流探针配合示波器记录了完整的工作循环电流波形。实测数据与预算表高度吻合:休眠阶段电流2.3uA,传感器采集阶段峰值14.5mA、持续时间约125ms,LoRa发射阶段峰值98mA、持续时间约440ms,单次循环总耗能约85mJ,平均电流约0.32mA。这个结果验证了“先做预算、再优化瓶颈”的方法论:如果你不知道能量花在哪,你就无法做出有效的优化。
3.5 预留余量的必要性
最后强调一点,任何功耗预算都建议预留至少20%的电流余量。原因很简单:电池实际容量会受温度影响(特别是锂亚电池在低温下容量会大幅衰减)、元件参数有离散性、后续固件可能因为bug或功能迭代增加执行时间。如果预算卡得太死,一旦现场环境比预期恶劣,整个系统就会面临未到设计寿命就掉电的风险。我这次是按2.6mA的控制目标做设计的,实际做到0.32mA,属于意外惊喜,但设计流程中始终没有放弃2.6mA这个安全线。
4. 常见问题与排查技巧实录:实测中焊过的钉子都在这
4.1 休眠电流居高不下:先别怀疑芯片,查漏电路径
有个项目测试时发现休眠电流无论如何都在45uA左右徘徊,芯片数据手册上明明写着1uA级别。我把整个板子翻来覆去查了三遍,最后问题出在一个非常不起眼的地方:一颗去耦电容的焊盘上残留了助焊剂。潮湿环境下助焊剂轻微漏电,导致整个板子的休眠电流被拉高了两个数量级。后来用洗板水把板子彻底清洗并烘干后,问题当场消失。
这类问题的排查思路对所有人都有参考价值,我整理成一套顺序:先断开所有外设电源,看纯MCU系统是否能达到手册值;再逐个上电外设,每上一个测一次,通过差分定位到“罪魁祸首”;排查GPIO是否有浮空输入;最后再考虑电容漏电、PCB受潮、焊盘残留这类“板级问题”。在硬件上找不到原因时,还记得把电流表的线阻考虑进去,有些精密电流表在低量程时串入的阻抗会导致电路工作异常,测出来的数据并不能反映实际运行状态。
4.2 低频唤醒后程序跑飞:时钟稳定时间没有留够
另一个项目中我使用了外部32.768kHz晶振作为RTC时钟源,深度休眠由RTC唤醒。测试时一切正常,但样机部署到现场后经常出现“睡死”或者唤醒后程序跑飞的问题。后来用逻辑分析仪抓取唤醒后的时钟信号,发现从RTC触发唤醒到外部晶振稳定输出,实际需要大约500ms,而我的初始化代码在唤醒后只等了5ms就开始操作外设总线,导致总线时序全部错乱。
这个问题在实验室不容易暴露,因为实验室里的电源和晶振工作条件都比现场理想,一旦到了低温或者电源波动大的环境,晶振起振时间会变长。解决方法是:唤醒后不要立即执行复杂的外设操作,先调用芯片的时钟稳定等待函数,或者干脆把大任务放到一个“后期处理线程”中,让主循环先稳定系统时钟。这个修改看似提升了几百毫秒的唤醒时间,但换来了系统的稳定可靠。
4.3 无线模块睡不彻底:模块没有真正进入休眠状态
LoRa模块在低功耗设计中经常出现“欲睡还醒”的尴尬状态。我调试过一款模块,它的休眠模式是通过向模块发送特定AT指令进入的,模块会返回一个“OK”表示进入成功。但实测发现模块在收到OK后大约还要等200ms才能真正把内部射频前端完全断电。如果主控发送休眠指令后立刻关闭模块的外部电源,模块当前的工作电流虽然断了,但下次上电后模块可能会因为“非正常断电”而进入配置丢失或异常状态,导致功耗飙升。
正确做法是:明确掌握模块进入休眠的完整流程时间,留出充足的等待窗口再断电;断电后再次上电时要检查模块的初始化状态字,确认模块真的处于可工作状态。如果你用的模块手册没有详细说明休眠时序,就要靠实测把状态机画出来——给模块发指令、观察电流变化曲线、记录时间节点,这是摸清模块脾气的唯一办法。
4.4 排查工具与判断逻辑
低功耗排查比功能调试难在“偶发”和“微小”上,所以合适的工具很重要。我常用的工具组合包括:
- 高精度万用表(分辨到0.1uA),用于静态电流测量。测量时注意表笔接触电阻和表内阻,尽量使用开尔文夹。
- 示波器+电流探头(或低噪声电流放大器),用于捕捉瞬态电流波形。很多问题只看万用表数字看不出来,波形才能暴露“什么时候多了个尖峰”。
- 逻辑分析仪(或带逻辑分析功能的开发板),用来验证时序关系,特别是唤醒后外设操作的先后顺序是否符合预期。
- 可编程电子负载或精密电阻负载,用于模拟不同功耗状态下的电源行为,验证整机在极端负载下是否能正常启动。
用这些工具配合前面提到的“先断开再逐个接入”的排查顺序,大部分低功耗异常都能在半小时内定位。记住一个原则:低功耗问题大多不是“芯片不省电”,而是“系统没有按照省电的方式工作”。
4.5 常见问题速查表
| 问题现象 | 可能原因 | 排查方向 | 解决方案 |
|---|---|---|---|
| 休眠电流与手册差一个数量级 | GPIO浮空、板级漏电、LDO漏电 | 断开外设逐个排查,检查GPIO配置 | GPIO固定电平,换低静态电流LDO |
| 唤醒后程序异常 | 时钟稳定时间不足、电源上升过慢 | 抓取唤醒后时钟波形,测电压爬升时间 | 延时等待时钟稳定,或改用内部RC快速启动 |
| 通信偶发失败 | 降频后时序余量不足 | 逻辑分析仪抓取通信时序 | 只对非通信外设降频,或降低通信速率 |
| 无线模块异常耗电 | 休眠指令后没有真正断电 | 观察模块电流变化曲线 | 等模块完全休眠再断电,确认状态字 |
| 电池续航远低于估算 | 上报频率过高、重传过多、高功耗阶段时间过长 | 记录完整工作循环电流波形 | 按预算表定位高能耗阶段并优化 |
5. 低功耗策略的边界思考:省电的终点是“恰到好处”
做完这个项目,我最大的体会是:低功耗策略不应该被看成是单纯的“省电技巧”,而应该当作一套系统级的“能量管理体系”。它的核心不是把功耗压到最低,而是根据业务目标,把能量花在最值得花的地方,并确保系统在不确定的真实环境中依然稳定可靠。
举个简单的边界例子:如果我们的业务需求只是30分钟上报一次数据,那从低功耗角度看,把上报周期从30分钟拉到60分钟,续航直接翻倍,但数据时效性就打了对折。这个决策根本不是一个技术问题,而是一个产品和业务问题。所以低功耗工程师不能只懂硬件和代码,还得懂用户需求、懂业务场景,才能做出真正合理的取舍。
我在这个项目里还把上报间隔从30分钟改成了15分钟,表面上续航从约580天缩短到约290天,但仍然远超3个月的使用要求,而数据密度大幅提升。这种调整办法,本质上就是用“充足的功耗余量”换取“更好的产品体验”。如果你的项目预算本来就卡得很紧,这种调整就没法做。
另外还想单独提一个很多人忽视的点:低功耗系统的测试环境一定要尽可能接近真实环境。实验室里电源稳定、温度恒定、干扰源少,很多问题根本激不出来。有条件的话,做一轮“野外实测”——用电池供电、放室外晒太阳淋雨、通信距离跑远一点,这些测试比在实验室里反复调参有效得多。我的经验是,野外跑三天,发现的问题比实验室跑一个月还多。
写在最后:低功耗是个系统工程,不是单一技巧
低功耗策略的收益与风险平衡,本质上是“能量”和“不确定性”之间的权衡。能量的总量是有限的,而现实环境中的不确定性(电池容量衰减、温度变化、信号波动、干扰、老化)是无限的。低功耗设计的核心能力,就是把有限能量用在最关键的地方,同时给不确定性留出足够的余量。
对这个话题有兴趣的朋友,可以沿着几个方向继续深入:第一个方向是自适应动态功耗管理,让设备根据电池剩余电量和现场环境动态调整工作参数,比如电量低时自动拉长上报间隔、信号差时自动提高发射功率并降低上报频率,这比固定参数配置要灵活得多,也更接近“智能”的定义;第二个方向是能量采集技术,把太阳能、振动能、温差能收集起来为设备供电,这会让低功耗设备的真正续航从“电池容量决定”变成“环境能量决定”,带来完全不同的设计逻辑;第三个方向是多目标优化,功耗不是唯一指标,还要同时考虑性能、成本、体积、实时性和可靠性,需要从系统架构层面去做权衡和取舍。
最后分享一个个人心得:做低功耗优化,永远不要只看数据手册上的典型值,也不要只看你自己测试出来的理想值。数据手册给的是实验室环境下的表现,你自己的测试板也可能比量产板表现更好——板子的制造公差、元器件批次差异、工作温度范围,都会让实际表现偏离预期。在设计之初就建立一套“理论预算+实测验证+余量兜底”的完整流程,把这套流程固化下来,每个项目都走一遍,你会发现自己对“低功耗”三个字的理解会越来越深,踩坑的次数自然越来越少。希望这篇文章能给你一点启发,下次再拿到一个“要省电”的需求时,不再手忙脚乱。