拓冰建站拓冰建站
首页 / 资讯中心 / 正文

低功耗开发实战:对比安卓与嵌入式,从功耗分析到入行路线

前阵子帮一个硬件团队排查「设备待机一晚掉电 30%」的问题最后定位到罪魁祸首是一颗姿态传感器固件里每 200ms 轮询一次数据CPU 永远退不出浅睡眠整机平均电流从设计值 0.3mA 硬生生拉到 12mA。这个项目让我又一次意识到低功耗开发不是「把某个外设关掉」那么简单它是一套从硬件选型、驱动配置到系统调度的组合拳。而市面上关于「安卓/嵌入式低功耗岗位」的信息又极度碎片化想入行的人要么被「岗位 JD 里写满内核术语」劝退要么不知道两方向到底有什么区别。这篇文章我把低功耗开发这个方向拆开揉碎先讲岗位到底解决什么问题再对比安卓和嵌入式的功耗战场有何不同然后给出一套可落地的功耗分析方法和入行路线。适合三类人看还没毕业想往这个方向走的学生、做了两年业务开发想转低功耗的工程师、以及正在招人却说不清岗位边界的团队负责人。1. 低功耗岗位到底在解决什么问题1.1 消费电子里的「电池焦虑」是怎样传导到工程师的你拿到的任何一款智能手机、手表、传感器终端用户感知到的「续航」其实是一个极其复杂的合成结果。屏幕亮多久、信号差时网络模块怎么补偿发射功率、后台应用怎么被系统调度、待机时有多少外设还在偷偷吃电每一环都有人在背后做决策。低功耗工程师的工作就是把这些决策尽可能往「能省则省」的方向拉。我接触过的低功耗岗位职责描述通常会写「负责整机功耗优化」「降低待机电流」「提升电池续航」但落到日常就是三件事测功耗、找功耗、降功耗。测功耗是建立基线知道当前版本在不同场景下到底吃了多少电流找功耗是定位异常搞清楚是哪颗芯片、哪个驱动、哪条代码路径在非预期耗电降功耗是给出方案并验证比如调整唤醒源、优化数据上报策略、更换供电方案。这个岗位之所以存在是因为在规模化量产的硬件产品里功耗从来不是「某一个模块的问题」。屏幕由显示团队负责射频由射频团队负责应用由软件团队负责如果没人从系统层面盯住「总能耗」每个团队都会在自己的局部做出看似最优但全局却很糟糕的选择——屏幕团队想要高亮度射频团队想要大功率发射应用团队想要高频刷新数据最后电池第一个遭殃。1.2 功耗问题的根子在「能量账本」不在单点优化理解低功耗开发先要建立一个概念任何电子设备都有本能量账本。账本左边是电池能提供多少能量右边是各个硬件模块消耗多少能量。低功耗工程师的工作本质是「做账」——把每一毫安时花在哪里搞清楚然后对开销不合理的地方动手。这里有两个核心公式要背下来。第一个是动态功耗公式P C × V² × fC 是电容负载V 是工作电压f 是开关频率。这个公式解释了为什么「降电压」比「降频率」更划算电压是平方项频率只影响一次方。所以 Linux 内核里 DVFS动态电压频率调节的核心逻辑就是在能满足性能需求的前提下尽量把电压和频率压到最低档位。第二个是静态功耗也就是漏电流。晶体管做得越小漏电越明显芯片即使什么都不干只要还在通电就有电流从电源漏到地。这就是为什么很多低功耗设备在深睡眠时干脆把整颗芯片的电源切断而不是仅仅让它「闲着」。记住这两个公式后面看优化方案时会少很多疑惑。行业里经常说的「低功耗设计」拆开看无非是四个字控压、控频、控时、控供。控压控频是让芯片别在低负载时全速运转控时是让系统尽量待在睡眠状态减少唤醒次数控供是按需给外设供电用不到的模块直接断电。一个成熟的低功耗工程师脑子里同时运转着这四套逻辑而不是只会背某一个函数。2. 安卓与嵌入式两个方向的功耗战场有何不同2.1 安卓低功耗在「通用系统」里抓「失控的应用和驱动」安卓低功耗岗位的工作载体是智能手机、平板这类跑着完整 Android 系统的设备。这类设备的特点是硬件已经固定系统高度复杂第三方应用不可控——用户装什么 App、App 在后台干什么都不是设备厂商能预判的。所以安卓低功耗的工作重心不在「省电功能如何实现」而在「省电策略如何治理」。Android 系统从 6.0 开始引入 Doze 模式和 App Standby本质上是系统层面的「节能警察」屏幕熄灭一段时间后系统会限制应用的网络访问和任务执行把后台活动压缩到「维护窗口」里集中处理。这背后的逻辑是与其让 20 个 App 各自偷偷唤醒 CPU不如统一安排时间让它们「排队办事」减少 CPU 频繁醒来又睡下的次数。安卓低功耗工程师日常打交道最多的是三个东西wakelock唤醒锁、Battery Historian电池历史分析工具、以及内核的 wakeup source唤醒源。wakelock 是应用请求系统不要睡着的锁如果一个 App 持有 wakelock 不释放系统就永远无法进入深睡眠这种情况在真实设备上非常常见。我见过一个视频类应用在后台播放结束后忘了释放 partial wakelock导致整机待机电流从 5mA 飙到 35mA一个晚上掉电 30% 以上。定位这类问题有标准路径先连上 Battery Historian 导出耗电曲线看哪个时间段电流异常拉高再查看内核的 wakeup source 列表确认是谁在持续持有唤醒锁最后通过dumpsys拉到具体进程栈锁定到具体代码。这个方向要求你会看 Binder 调用、懂进程调度、能读懂内核日志本质上是一个「站在系统层面做侦查」的工作。安卓低功耗岗位还有一个特点碎片化严重。同一个省电策略在不同厂商的 ROM 上有不同表现高通平台和联发科平台的电源管理实现也有差异这导致岗位 JD 里经常出现「熟悉高通平台 PMIC 优先、有功耗调试经验者优先」这类要求。入行前两年大部分时间其实是在跟「为什么这个平台表现跟上一个不一样」做斗争。2.2 嵌入式低功耗在「专用设备」里算「每一毫安的账」嵌入式低功耗是完全相反的画风。这里的开发对象是 MCU单片机、RTOS实时操作系统或轻量级 Linux 系统硬件资源有限功能明确所有代码都是自己写的没有「第三方 App 失控」这回事。工作重心也从「治理」变成了「精算」——在设计阶段就要把每一毫安都规划好。以最常见的 STM32 为例它的低功耗模式分为 Sleep睡眠、Stop停机、Standby待机三档。Sleep 模式下 CPU 停止运行但时钟还在跑唤醒最快功耗降得有限Stop 模式关闭大部分时钟SRAM 数据保留功耗可以到微安级Standby 模式几乎把整个芯片都关了只剩下备份域和唤醒引脚还在工作功耗最低但唤醒后相当于重启。选哪一档、什么条件下进哪一档、唤醒后怎么快速恢复外设状态这些都是嵌入式低功耗工程师的基本功。嵌入式低功耗真正考验人的是「系统级取舍」。一个使用电池供电的传感器节点上报周期是 1 分钟还是 5 分钟直接决定电池能用半年还是一年。通信选择 BLE、NB-IoT 还是 LoRa每种方案的峰值电流和平均功耗截然不同。传感器是上电后一直轮询还是只在需要时打开、采完立刻断电功耗差距可能接近百倍。这些决策没有标准答案必须在「功能、延迟、成本、功耗」四者之间权衡。RTOS 场景下还有一个关键机制叫 Tickless Idle无节拍空闲。普通 RTOS 为了做任务调度会周期性产生时钟中断就算系统没活干也会周期性醒来。Tickless 机制让系统在空闲时真正停止时钟中断把唤醒频率降为零让 CPU 一直睡到有外部事件触发。很多嵌入式工程师会把 FreeRTOS 的低功耗 tickless 模式改写适配到自己的驱动框架上这也是面试官很喜欢问的问题。2.3 两个方向的能力交集电源知识、测量能力与系统思维很多人纠结选安卓还是选嵌入式其实这两个方向在低功耗领域有非常多的共通点。首先是电源知识无论是手机还是 MCU你要懂 LDO 和 DC-DC 的效率差异要懂电池放电曲线要懂负载越大压降越明显这些基本规律。其次是测量能力拿到一块板子知道怎么用万用表测静态电流、用示波器看开关瞬态、用功耗分析仪记录动态曲线这些都是通用的。更深层的共通点是系统思维。低功耗问题的本质是「全局资源分配」而不是「单点代码优化」。一个安卓工程师如果之前一直写应用层业务代码转来做低功耗会很不适应因为这里的性能指标不是功能能否实现而是「整个系统睡了没、睡得多深、有没有被莫名唤醒」。这套思维在嵌入式方向也是同理所以在招聘市场上低功耗岗位特别看重候选人有没有「从系统角度看问题」的习惯。3. 功耗去哪了开发中必须吃透的功耗模型3.1 用「员工作息」类比动态功耗与静态功耗我把芯片比作一家 24 小时营业的公司。动态功耗是员工在干活时消耗的能量——接电话、写代码、开会活儿越多消耗越大。静态功耗是公司维持运转的固定开销——就算所有员工都趴在桌上不动空调、照明、保安还是要耗电。对公司来说要想省钱既要减少无效劳动降低动态功耗也要在最闲的时候把空调关了降低静态功耗。对应到技术上CPU 的负载调度器就是「安排员工干活」的人。Linux 内核里有各种 cpufreq 调频策略governor从 performance永远满频、ondemand负载高才提频到 schedutil依据调度器负载精调频率本质上是不同的「排班制度」决定了 CPU 在什么负载下用多少频率。低功耗开发里把不合理的 governor 或者调频阈值调对往往比改一段业务代码更立竿见影。静态功耗的优化思路完全不同。芯片在深睡眠时内部会有多种电源域被依次切断只保留必须工作的那部分电路。设计产品时选择一个静态功耗本身就低的 MCU远比事后调软件更有效。比如同样是 Cortex-M4 内核普通 STM32F4 的待机电流是微安级而专门的低功耗系列可以做到几十纳安这种硬件层面的差距是软件再怎么优化都无法抹平的。3.2 外设管理低功耗优化最容易出效果的地方芯片自身的功耗再优化也有上限真正的优化空间往往在外设上。我拆解过非常多「功耗超标」的案例最后都是外设管理出了问题传感器板子上电后一直处于测量状态、蓝牙模块永远在广播、GPIO 引脚悬空导致漏电、通信接口空闲时没有拉低到确定电平。外设管理遵循一个原则不用就断电用的时候再开用完立刻关。比如一颗温湿度传感器上电后完成一次测量需要 100ms那我就在每个上报周期里只给它供这 100ms 的电其余时间通过 MOSFET 或负载开关把电源彻底切断。看似是常识但实际项目里能做到的系统非常少因为「关掉」比「打开」难——你要考虑驱动初始化时序、上电稳定时间、以及异常情况下的恢复策略。GPIO 漏电是另一个高频坑。MCU 的引脚如果被配置成浮空输入引脚电位在电源电压的一半附近徘徊内部的输入缓冲器就会持续产生从 VDD 到 GND 的贯通电流。一颗引脚的漏电只有几十微安但一款产品如果外挂了几十个传感器引脚累计起来就相当可观。低功耗设计规范里通常会要求所有不用的 GPIO 一律设为模拟输入或确定电平输出避免浮空。3.3 通信模块整机功耗的最大变量通信模块往往是功耗账单里最粗的一根柱子。Wi-Fi 模块的峰值接收电流可以到 70mA 到 100mA 级别蜂窝通信在信号弱时功放会加大发射功率电流可能飙到 2A 以上而 BLE 的广播电流通常只有几毫安。所以低功耗产品的通信方案选择对整机续航影响是决定性的。这里有一个行业共识低频次、小数据量的设备优先选 BLE需要长距离、广覆盖的选 NB-IoT 或 LoRa视频流这类大数据量才会考虑 Wi-Fi 或蜂窝。但方案选完不等于工作结束通信策略还需要细调广播间隔是 100ms 还是 1s连接间隔能不能从 30ms 拉长到 300ms空闲能不能让通信模块进入 sleep 状态再定期醒来监听。这些参数的每一档调整都是电流曲线上实实在在的变化。通信低功耗的核心矛盾是「延后」与「合批」数据来了不立刻传攒一批再统一发可以减少模块的启动次数和连接建立开销但代价是数据延迟变长。产品经理如果要求「数据实时可见」工程师就得在实时性和功耗之间反复博弈。低功耗岗位的日常沟通对象很大一部分其实是产品经理。4. 一个低功耗工程师的日常工作流4.1 常用测量工具与环境搭建低功耗开发离不开测量测量工具选错会直接误导优化方向。最低成本方案是一台精度到微安级的台式万用表串联在电源和板子之间测静态电流适合看「平均功耗」动态场景需要用功耗分析仪或高采样率的数据采集器记录电流随时间的波形适合看「谁在什么时候把电流拉高了」。行业里安卓功耗测试常用 Monsoon Power Monitor也有一批开源低成本方案比如用 INA226 电流检测芯片加单片机做数据采集把电流数据通过串口送出来画成曲线。嵌入式场景下还有一种很实际的做法直接用带电池的评估板用 Joulescope 或者 Nordic 的 Power Profiler Kit 这类台式工具在做低功耗调优时可以直观看到微安级的变化。我个人的经验是工具优先级是「能测准」大于「功能多」一台标定过的万用表比一个没校准的高端分析仪可靠得多。测试环境还有一个细节电池供电和电源供电测出来的电流曲线差异很大。电池内阻会随着负载变化产生压降导致供电电压波动影响芯片的实际工作状态。所以很多正规测试都会用「假电池」方案——把一只电池的外壳掏空把电源线从里面引出来既保留电池的物理尺寸和接触方式又能让程控电源稳定供电同时支持串联采样电阻测量电流。4.2 从电流曲线到问题定位的标准路径拿到功耗异常的报告后我的排查套路基本固定先复现再分段然后定位最后验证。复现是让设备进入报告中的异常场景比如待机一晚上、播放视频、弱信号通话期间用仪器记录完整电流曲线。分段是把场景拆成小环节待机、亮屏、应用启动、数据传输每段单独分析确定异常电流是出现在哪个环节。定位是在异常环节里找到「唤醒源」——在安卓系统里看 wakeup source在嵌入式里看中断和定时器在硬件上用示波器抓关键引脚的翻转。举个具体例子。排查一台安卓设备的待机高功耗时你可以在串口终端里输入cat /sys/kernel/debug/wakeup_sources看到一长串符号名后按 active_since 时间排序就能找出系统睡着后最近一次被谁唤醒。再结合日志logcat -b kernel | grep wakeup就能把内核日志里所有与电源相关的打印捞出来。很多时候答案就在这些打印里——某颗传感器芯片的上电引脚被错误地拉高或者某个驱动在resume回调里做了大量无意义的初始化工作。这种「从数据到日志再到代码」的链条就是低功耗工程师日常破案的完整路径。4.3 三个真实踩坑案例看似玄学实则有规律我挑三个有代表性的案例说说。第一个是传感器频繁 I2C 读取导致 CPU 无法深睡。固件里用HAL_Delay(200)循环轮询一颗加速度计每一轮轮询都产生 I2C 通信I2C 又会唤醒 CPU导致 STM32 始终在睡眠和唤醒之间高频切换平均电流远超预算。方案是改成「传感器数据就绪引脚触发外部中断MCU 只在中断里读取」平均电流一下子降了两个数量级。第二个是 GPIO 悬空导致的漏电。一块四轴飞行器的电池管理板静态电流比设计值多了 5mA排查很久才发现是 MCU 的 5 个未使用引脚没有配置成模拟输入一直处于浮空状态。补上这几行初始化代码后静态电流立刻归位。这类问题在原理图评审时完全看不出来只能靠测量和规范约束。第三个是安卓里的后台定时器反复拉起 App。某应用用 AlarmeManager 每 5 分钟重复一个网络请求系统进入 Doze 后虽然限制了网络访问但 AlarmeManager 本身仍会周期性唤醒 CPU。这个问题的本质是「请求太频繁」解决方案是改成 JobScheduler 并把最小执行间隔拉到 15 分钟以上同时把数据上报做成批量合包。这类问题教会我一件事低功耗优化不一定是「技术问题」很多时候是「策略问题」。5. 零基础入行路线与岗位匹配5.1 把岗位 JD 逐条拆成「人话」我摘一段典型的嵌入式低功耗岗位 JD逐条翻译一下负责 IOT 产品的低功耗设计与优化包括硬件功耗评估、软件功耗策略制定、整机功耗测试熟悉 STM32 等主流 MCU熟悉 C 语言和 RTOS熟悉常用接口协议如 I2C、SPI、UART了解 Linux 电源管理框架优先。翻译过来就是第一你得看得懂原理图知道这板子上的电源树长什么样每颗芯片在什么条件下该通电、什么条件下该断电第二你得会写 C 代码能在一个 RTOS 里把 sleep/wakeup 机制用起来第三你得会看接口时序图知道 I2C 和 SPI 在什么工作状态下吃多少电第四如果你还能看懂 Linux 内核的 suspend/resume就能接触高端旗舰机项目。再看安卓方向的 JD负责手机整机功耗问题的分析与优化包括待机功耗、后台耗电、发热问题熟悉 Android 系统机制与 Binder/IPC熟悉 wakelock 原理掌握 Battery Historian、systrace 等调试工具有内核 power management 经验者优先。翻译过来是第一你必须懂安卓系统怎么调度应用知道 JobScheduler、AlarmManager、wakelock 这些机制是干嘛的第二你会用工具从耗电曲线一路追到具体进程和调用栈第三如果你还懂内核的 cpuidle、cpufreq 和 suspend/resume 流程就属于稀缺人才。两边对比可以看出嵌入式更强调「硬件意识」安卓更强调「系统治理」但共同点是都要有很强的测量和排查能力。5.2 一条分阶段的入门路线零基础入行低功耗我建议按「嵌入式 → Linux → 安卓」的路径走不要一上来就扎进安卓框架里。第一站是单片机基础知识拿一块 STM32 或 MSP430 开发板把 GPIO、定时器、串口、中断这几个外设玩熟同时认真补 C 语言里的指针、结构体、回调函数这些概念。学到能独立写一个小项目比如用按键控制 LED 闪烁就算过关。第二站是 RTOS 和低功耗模式。用 FreeRTOS 重写之前的小项目理解任务调度、信号量、消息队列然后重点研究 tickless idle 模式的实现原理对照芯片手册把每个低功耗模式的唤醒条件和唤醒后行为搞清楚。这个阶段建议做一个「电池供电的温湿度记录仪」项目超过 1 分钟不上报时自动进入 Stop 模式用 RTC 定时唤醒目标是把平均电流做到 10 微安以下。做完这个项目嵌入式低功耗的基本盘就算打牢了。第三站是 Linux 和安卓。在虚拟机上装一个 Linux 发行版学设备树、字符设备驱动、内核模块编译先把suspend/resume流程跑一遍再去看安卓框架里的 PowerManagerService、wakelock、Doze 这些机制。这个阶段最有效的学习方式是「复现问题、定位根因」去下载一个开源的低功耗项目源码不加日志地猜测某个功耗异常的原因然后用工具验证。很多入行安卓低功耗的工程师就是靠刷开源固件、用 Battery Historian 研究别人写的功耗问题分析文章一点点积累出来的。5.3 简历上值得写的低成本可复现项目没有真实产品经验的人转低功耗最容易被卡在「项目经验」上。我的建议是不要写贪吃蛇、智能小车这类项目而是专门设计能体现功耗思维的小项目。第一个是「超低功耗环境监测节点」用 STM32L 系列加一颗 BME280 传感器加一颗 BLE 模块实现每 10 分钟上报一次温湿度待机电流做到微安级电池设计寿命做到一年以上。简历上写清楚架构选型、功耗预算表、实测数据招聘方一眼就能看出你懂行。第二个是「安卓开机耗电优化」在自己的旧手机上用 Battery Historian 分析开机后不同阶段的电流变化找到启动阶段功耗异常的 App 或系统服务分析原因并给出优化建议。这个项目的优势是完全不依赖公司环境但能体现你对系统机制的深入理解。第三个是「内核电源管理补丁分析」从内核邮件列表或开源社区找一条与 cpufreq 或 cpuidle 相关的补丁分析它解决什么问题、改动逻辑是什么、为什么这样改。写这种项目不需要你提交代码但能体现你关注内核电源管理的技术深度这在面试里是一个极大的加分项。6. 面试与入行避坑经验6.1 低功耗岗位面试的高频问题与答题思路低功耗方向的面试题本质上是「功耗八股文」加「实战排查思路」。我整理几个高频问题和推荐答题思路第一个问题STM32 的 Sleep、Stop、Standby 三种模式有什么区别答的时候要抓住三个维度时钟是否关闭、SRAM 是否保持、唤醒方式和唤醒延迟。Sleep 模式 CPU 停但时钟和 SRAM 都在唤醒最快Stop 模式关主时钟、SRAM 保持靠外部中断或 RTC 唤醒Standby 模式只保留备份域唤醒必须走复位流程。能补充「功耗依次降低、唤醒时间依次变长」这个权衡关系就很加分。第二个问题如何降低一个 BLE 设备在待机状态下的平均功耗答题思路是分层硬件层选低静态功耗的 MCU 和传感器电源树设计保证待机时外设全部断电软件层在空闲时进入 tickless 模式传感器数据由外部中断唤醒而不是轮询通信层把连接间隔拉长、广播间隔放大数据攒批发送。三层各说两到三点考官会觉得你有完整体系。第三个问题安卓 Doze 模式下应用还能做什么这个问题考察的是对系统机制的准确理解。答案是Doze 会限制网络访问和后台任务但应用仍然可以通过高优先级推送消息如 FCM 的 high-priority在维护窗口内收到通知JobScheduler、AlarmManager 会被延后到维护窗口或退出 Doze 后执行部分系统白名单应用可以打破限制。如果能把「维护窗口」的时间窗口机制也说清楚会显得做过深入调研。第四个问题给你一块不知道任何背景的板子怎么排查它的静态电流偏高这就是纯实战题了。答题框架先断开负载逐级测量确认是板级漏电还是芯片级问题再用热成像或逐一拔外设的方式找到发热异常或电流贡献大的模块最后用示波器抓电源引脚的瞬态判断是否有引脚悬空或外设未断电。这类问题开放性很强关键是展示「测量驱动排查」的思维方式而不是背标准答案。6.2 入行初期最容易踩的坑我把自己带新人时反复强调的几条经验列出来。第一不要只改代码不测电流。低功耗优化是典型的「改了才知道有没有效果」的工作哪怕只是调整一个参数也要用仪器记录前后对比数据让每次改动都有据可查。第二不要在睡眠前把所有外设初始化一遍。新手容易犯的错误是在进入低功耗模式前把所有外设都重新初始化了一遍导致唤醒后状态全乱。正确做法是只保存必要状态让外设保持睡眠前状态唤醒后再统一恢复。第三不要忽视电源时序。多电源域芯片的上电顺序是有讲究的如果主控先上电、外设后上电外设在上电瞬间可能会通过 GPIO 反向灌电流引发莫名其妙的问题。低功耗开发切换到「深睡眠 → 外部唤醒 → 恢复供电」的流程时尤其要检查这个时序。第四大胆使用「空闲期整板断电」。很多产品在待机时只需要保留实时时钟和一个唤醒引脚那就可以把整颗主控都断电而不是让它待在 Stop 模式里。静态功耗再低的芯片也比不上「断电」。不过断电方案要特别小心数据丢失和启动时间变长这两个副作用每次决策前都要权衡。6.3 一些对新人比较有用的学习资源与进阶路径具体的学习资料我推荐先从芯片原厂的文档入手。ST 的低功耗应用笔记、NXP 的电源管理手册、高通和联发科的功耗调试指南这些都是值得反复精读的一手资料。第二梯队是内核源码里的Documentation/power目录包含 cpufreq、cpuidle、suspend/resume 的权威说明。第三梯队是社区里的实战文章这类资料质量参差不齐但胜在场景真实可以帮你建立「这个问题别人是怎么解决的」的参照系。学习路径上我建议每学一个知识点就配套做一个验证实验。学了 tickless就在板子上测量不同配置下的唤醒频率学了 Doze就在真机上用 Battery Historian 对比开启和关闭 Doze 的电流曲线。低功耗是一个「知识必须落到数字上」的方向你脑中积累的「典型电流值」越多面试和实际工作中的判断就越准。我自己在这个领域里待得越久越觉得低功耗开发是个「越老越值钱」的方向。原因是功耗问题无处不在而解决功耗问题依赖的经验无法速成——芯片在不同模式下的真实电流、通信协议在弱信号时的表现、安卓各版本对后台任务的策略差异这些东西书上看不到只能靠一台台设备、一版版固件慢慢喂出来。如果你现在正好站在选择方向的岔路口又喜欢做「花几个月把一块板子的待机电流从 5mA 压到 0.1mA」这种极具挑战的事那低功耗开发值得你认真投入。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门