news 2026/10/7 7:48:46

ESP32芯片与模组怎么选?从SoC概念到选型实战全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ESP32芯片与模组怎么选?从SoC概念到选型实战全解析

做硬件这么久,我经常被问到同一个基础得不行但又特别容易绕晕的问题:ESP32 到底是买芯片还是买模组?有人拿着淘宝买回来的 ESP-WROOM-32 模组,以为这就是 ESP32 芯片;也有人图省事直接买了裸芯片回来自己画板,结果板子做完死活跑不起来,最后才发现是漏了晶振和 Flash。今天这篇就把 ESP32 芯片与模组之间的区别彻底捋一遍,从 SoC 的概念讲起,一直聊到怎么根据你的项目需求选到具体能下单的料号。无论你是刚接触 ESP32 的嵌入式新手,还是准备把方案做进量产产品的工程师,这篇内容都应该能帮你看清整个选型路径。

1. 芯片和模组不是同类东西:先把 SoC 的概念对齐

1.1 ESP32 本体是一颗 SoC,不是一颗"普通单片机"

很多人习惯把 ESP32 归类为单片机,一看到"芯片"两个字就默认它跟 STM32 一样,是拿来直接画进原理图里的 MCU。这个说法对了一半,严格来说,ESP32 属于 SoC(System on Chip,片上系统)。它把应用处理器、WiFi 基带、蓝牙基带、射频收发器、电源管理和大量外设控制器全部集成在同一颗硅片上。而传统的 MCU 芯片只处理数字逻辑和通用外设,想要联网还得外挂一颗 WiFi 芯片或者 WiFi 模组。

这个区别不是抠字眼,它直接影响你的设计难度。以 STM32F103 这类 MCU 为例,你画板时只需要考虑电源、晶振、复位和烧录接口这几个最小系统要素。但 ESP32 这类 SoC 多出了完整的射频链路,包括天线匹配网络、射频走线阻抗控制、射频电源的滤波和隔离,这些额外复杂度在"选芯片自己画"的方案里是绕不开的。理解了 SoC 的定位,才能理解为什么模组在市场上占据那么大比例。

1.2 裸芯片里有什么,又没有什么

以最常见的 ESP32-D0WD-V3 为例,这颗芯片采用 QFN 封装,大约 48 个引脚,内部已经集成了这些东西:

  • 双核 Xtensa LX6 处理器,主频最高 240MHz,另有 1 个超低功耗协处理器
  • 448KB ROM 和 520KB SRAM,其中约 320KB 可用作普通 RAM
  • WiFi 802.11 b/g/n 完整协议栈所需的基带与射频前端
  • 蓝牙 4.2 BR/EDR 和 BLE,射频部分与 WiFi 共用天线引脚
  • 丰富外设:SPI、I2C、I2S、UART、ADC、DAC、PWM、SDMMC、触摸传感器等

但芯片内部没有运行程序必需的片外 Flash。它虽然有一段 448KB 的 ROM 用于存放 bootloader 和协议栈,可用户应用程序和文件系统还是得放在一颗外部 SPI Flash 里。芯片本身也依赖外部晶振提供参考时钟,常规设计必须配备一颗 40MHz 主晶振和一颗 32.768kHz 的 RTC 晶振。天线也不在芯片内部,需要你在 PCB 上做天线或者通过引脚连接到外部天线。

如果你只把芯片焊到板子上,接通电源,它什么都不会发生,因为既没有程序存储,也没有时钟源。这也是为什么模组会成为绝大多数开发者和中小硬件团队的最优解。

1.3 模组就是"别人帮你画好了最小系统"

ESP32 模组的本质,是把裸芯片、Flash、晶振、天线匹配电路、必要的滤波电容和电感,以及一个明确朝向的天线(PCB 天线、陶瓷天线或 IPEX 座连接外部天线)全部集成在一块小型 PCB 上,再盖上屏蔽罩做电磁隔离。常见的 ESP-WROOM-32E、ESP32-WROVER-E、ESP32-MINI-1 都是这个思路的产物。

从产品工程师的视角看,模组把一个"需要射频设计能力才能搞定的 SoC"变成了一只"看起来像大号芯片的零件"。拿到模组后,只要按数据手册接好电源、几颗去耦电容和必要的使能/启动引脚,就能把它当成一个含有完整功能的子系统使用。串口、下载、GPIO、ADC 等功能引脚全部引出,开发体验比裸芯片方案友好得多。

用一个类比来理解:芯片方案是你买了发动机毛坯,还要自己配变速箱、油箱和排气管,甚至得自己调校;模组方案则是直接买了一台装好发动机、变速箱和油路的动力总成,你只需要把它装进底盘。两者做出来的车都能跑,但付出的工程量完全不同。

2. 芯片方案和模组方案的真实差异

2.1 体积与成本的第一印象并不准确

很多人看到模组的单价(比如十几二十元)和裸芯片价格(几块钱到十几块),会立刻觉得"用芯片省多了"。但这是典型的只看物料清单(BOM)成本陷阱。芯片方案除了裸芯片,还必须加上 Flash、晶振、天线、谐振/匹配电容电感、屏蔽罩(一般是量产产品必备)、PCB 面积以及打样调试成本。把这些全部算进去,单片物料的净成本差距大概在 5 到 8 元人民币左右,并不是天壤之别。

倒过来看,模组其实也有隐藏成本。模组本身带有屏蔽罩,多个模组贴片生产的工艺损耗低,但也需要计算 PCB 屏蔽罩占用的面积。在极紧凑的可穿戴设备里,一颗模组的尺寸通常为 18mm x 20mm,而芯片方案的裸片面积加外围元件可能只需要模组三分之二甚至更小的 PCB 面积。但节省面积的代价是你必须把射频走线、天线净空和阻抗匹配全部处理好,这恰恰是很多团队最薄弱的地方。

2.2 认证门槛是很多人忽略的分水岭

WiFi 和蓝牙产品在多数市场都需要过认证,比如北美 FCC、欧洲 CE、日本 TELEC 等。模组厂出厂时通常已经完成了射频发射与接收、谐波、杂散等射频测试,并提供完整的认证报告。设备商在整机认证时可以直接引用模组的报告,把认证周期和费用压缩到极低。这一点对于小团队和初创产品至关重要。

反观芯片方案,所有射频相关的认证测试都需要以整机为单位进行。如果你没有射频工程师,也没有可用的测试实验室资源,光是天线匹配、谐波抑制这两项就可能反复送测多次,每次的费用和时间都不小。做消费电子产品的朋友应该知道,认证周期往往是项目排期里最大的变数之一,模组方案在这方面确实称得上是"花钱买保险"。

2.3 开发效率与长期维护的取舍

从开发效率看,模组方案可以让你把精力集中在应用层逻辑上,例如传感器读取、云端协议、App 通信、边缘 AI 推理这类真正差异化的功能。而芯片方案会迫使你去解决电源时序、晶振起振、Flash 配置、射频匹配和天线调谐等基础问题。对于产品原型验证阶段,模组方案的灵活迭代速度优势非常大。

但长期维护也有另一面。大批量产品在使用模组时完全受制于模组厂商的生命周期管理。一些模组型号因为主控芯片停产而进入 NRND(Not Recommended for New Design,不建议新设计采用)状态,或者模组厂商不再维护固件。而芯片方案由于掌握了核心关键物料(芯片本身),只要芯片厂还在供货,你替换 Flash、晶振等外围器件的自由度就高出不少。这也是大型企业的产品线经常坚持使用芯片方案的原因之一。

3. 选型决策点:不要只看价格表

3.1 什么情况下老老实实买模组

如果你符合以下任一情况,模组通常更稳妥:

  • 团队没有射频设计经验,不具备天线阻抗测试和调试的能力
  • 产品形态对 PCB 尺寸没有极度苛刻的要求,一颗模组的位置完全可以接受
  • 开发周期紧,计划在几周内完成原型验证并申请整机认证
  • 预期销量为几千到几万台的中等批量产品,模组成本仍可接受
  • 希望降低不良率和返修风险,屏蔽罩和出厂测试能大幅减少射频类故障

我个人见过不少团队为了节省一点点成本选择芯片方案,最后却在 WiFi 信号强度、传导杂散、天线效率这些指标上反复折腾,浪费的工程师工时和认证费用远远超过了省下的物料差价。对于绝大多数 IoT 产品,模组的综合性价比其实是更高的。

3.2 什么情况下可以直接上芯片

反过来,这些场景值得考虑芯片方案:

  • 团队具备射频设计能力,至少拥有网络分析仪和频谱仪
  • 产品需要极致的紧凑结构,模组的屏蔽罩和封装尺寸无法满足
  • 预期年销量达到数十万甚至百万级,几块钱的单机物料差价会被放大到非常可观
  • 需要定制特殊形态的天线,比如板载 FPC 天线、陶瓷贴片天线或与外置天线直接连接
  • 对供应链有强控制需求,希望核心主控之外的外围器件可以按自己的供应商策略切换

芯片方案中那颗裸芯片本身通常不是最麻烦的部分,真正的难点在射频链路的仿真和调试。如果你做过 2.4GHz 频段的 PCB 天线设计,就会知道板子上的过孔、地平面、阻焊油墨、结构件离天线的距离都会影响最终性能。没有经验的情况下直接上芯片,很容易陷入"板子做出来、程序跑通、但信号弱的可怜"的尴尬。

3.3 成本模型怎么算才靠谱

做选型比较时,我会建议把以下项目全部列进对比表:

对比项目芯片方案模组方案
裸芯片/模组单片价格约 8~15 元(视型号与采购量)约 15~30 元(视认证与品牌)
外围必需元件(Flash、晶振、匹配器件)约 3~6 元模组已包含,不再额外支付
屏蔽罩与射频滤波器约 1~3 元模组已包含
PCB 面积成本更小,但布线密度高较大,但布线简单
开发调试人力成本高,需要射频知识低,专注应用层
认证测试成本整机认证全做可引用模组认证
贴片良率与产测成本需要自行保证模组出厂测试分摊
供应链切换灵活性高受制于模组厂

把这张表填完,再乘以你的全年销量,"省不省钱"的答案往往和第一直觉不太一样。如果你的团队只有两三个嵌入式开发,又没有独立射频工程师,模组方案多出来的物料成本大概率会被研发工时抵消掉甚至反超。

4. 实操选型方法:从需求到可下单料号

4.1 第一步:围绕功能需求圈定 ESP32 系列范围

先别急着打开购物网站,第一步是明确你的产品到底需要什么计算能力和外设。ESP32 家族远比很多人以为的复杂,按大类可以分为几条主线:

  • 经典 ESP32:双核 Xtensa LX6,带 WiFi 和经典蓝牙/BLE,适合通用 IoT、网关、音频与屏幕交互
  • ESP32-S2:单核 Xtensa LX7,带 WiFi,无蓝牙,但内置了大量 USB 和 ADC 特性,适合需要低成本 USB 接口的设备,比如键盘、采集卡
  • ESP32-S3:双核 Xtensa LX7,带 WiFi 和 BLE,AI 加速指令增强,适合边缘 AI、摄像头、LCD 显示与语音识别
  • ESP32-C3:单核 RISC-V,带 WiFi 和 BLE,价格更低,适合简单的传感器设备、智能照明和低成本透传
  • ESP32-C6:单核 RISC-V,带 WiFi 6 和 BLE 5.0,同时支持 Thread/Zigbee,适合智能家居 Matter 生态
  • ESP32-H2:单核 RISC-V,无 WiFi,主打 BLE 和 802.15.4,适合低功耗传感器网络

这一步的关键是删掉用不到的功能。如果产品只需要一个 WiFi 透传,选 ESP32-C3 会比选经典 ESP32 便宜和简单;如果产品要做摄像头识别再加上屏幕显示,那就应该考虑 ESP32-S3。把功能需求写下来,逐条对照这些系列的能力图,范围自然就缩小了。

4.2 第二步:根据封装形态缩小芯片或模组候选

功能范围定好之后,再看封装形态。如果你已经确定用模组,就要在对应系列下找到合适的模组系列。以经典 ESP32 为例,乐鑫官方的模组就有好几个分支:

  • ESP-WROOM-32E:最普及的双核 WiFi+BLE 模组,18mm x 25.5mm,板载 PCB 天线,外接 Flash 4MB
  • ESP32-WROVER-E:在 WROOM 基础上增加了 8MB PSRAM,适合需要大内存缓冲的应用,比如图片处理和复杂界面
  • ESP32-MINI-1:13mm x 17.8mm 的小型化模组,带 PCB 天线或 IPEX 天线两种变体
  • ESP32-SOLO-1:单核版本,比双核便宜一点,适合不需要双核的应用

如果你决定用芯片,那么需要关注 ESP32 芯片本身的不同型号。例如 ESP32-D0WD-V3 是双核经典版本,ESP32-S0WD 是单核版本,ESP32-U4WDH 则是内置 4MB Flash 的芯片版本,可以省去外置 Flash。这些型号字母和数字后缀直接决定了引脚数量、内置存储和外设差异。

4.3 第三步:考虑 Flash、PSRAM 与天线形态

接下来是存储资源和天线的选择,这两项在物料选型里特别容易出错。

Flash 容量决定你能放多少固件和文件系统。乐鑫官方对不同容量 Flash 有兼容引导机制,但并非所有模组都默认支持大容量 Flash。比如很多 WROOM 模组固定焊了 4MB SPI Flash,如果你需要更大的文件系统(例如放网页资源、音频文件、OTA 双备份),就可能要选 8MB 或 16MB 版本。更重要的是,ESP32 出厂时会在 eFuse 里写入 Flash 电压和容量配置信息,部分老版本的芯片只默认支持 4MB,超过部分需要通过配置工具修改 eFuse。这个操作稍有不慎就会把芯片功能锁坏,量产产品不会轻易去动它。

PSRAM 则影响大数据缓冲能力。经典 ESP32 的 SRAM 只有约 320KB 可用,跑摄像头、GUI 或者复杂的 TLS 连接会非常紧张。ESP32-WROVER 系列就是因为这个原因增加了 PSRAM。当你发现自己的应用有大量分段缓冲区(比如 JPEG 图片帧缓存)或大量动态内存分配时,买带 PSRAM 的版本几乎是必须的。

天线形态虽然看起来简单,但直接影响产品结构。PCB 天线便宜且免额外成本,但它对周围金属结构、外壳屏蔽和人体靠近极其敏感,天线净空区要求严格。IPEX 座外接天线则把天线从主板上分离出来,结构设计灵活很多,但会多一条连接线和连接器成本。如果你的主机外壳是全金属或内部有金属支架,板载 PCB 天线基本是灾难,果断选 IPEX 外接天线版本。

4.4 第四步:锁定具体料号和下单前核对

到了这一步,你应该已经能拼出完整的需求画像。举个例子,一个智能家居网关的需求可能是:WiFi 和 BLE 都要、需要本地规则引擎和少量语音指令、结构紧凑、外壳是塑料、开发周期 6 周。

这个条件翻译成模组选型就是:经典 ESP32 双核、不带 PSRAM 也可以(因为本地逻辑不重)、要 PCB 天线(外壳是塑料且无大面积金属)、最好带屏蔽罩方便做认证,于是候选就是 ESP-WROOM-32E。如果必须做 Matter 生态产品,那就转向 ESP32-C6 系列模组。

下单的时候还要再看两个点。第一是模组主芯片的固件版本,模组上 Flash 里预烧的出厂固件不是每个批次都一样,但通常不影响你通过串口重新烧写。第二是模组的温度等级。普通的商用级 ESP32 工作温度一般是 -40°C 到 +85°C,但如果你做车规或者户外室外高温设备,就要看具体芯片和模组标称温度范围,别只看淘宝详情页。

采购环节我还建议你养成一个习惯:把完整料号写进 BOM,而不是只写"ESP32 模块"。因为 ESP-WROOM-32 和 ESP-WROOM-32E 在引脚兼容、Flash 容量和芯片版本上都有差异,很多供应商的现货编码只到"ESP-WROOM-32",你到手可能发现是 32E,也可能是老版本。料号写清楚能省掉大量沟通成本。

5. 芯片方案动手做板:最小系统到底要几个块

虽然我前面反复强调模组的优势,但不能否认芯片方案在某些量产场景根本没有替代选项。如果你决定走芯片方案,下面这几个环节是板上钉钉的必修课。

5.1 电源设计:ESP32 的供电不只是一个 3.3V

ESP32 内部有多个电源域:数字逻辑电源、模拟电源、RTC 电源、射频功率放大器电源等。数据手册给出的常规推荐是把所有电源引脚都接到 3.3V,但射频发射瞬间的电流尖峰可达几百毫安,而且唤醒 WiFi 时的瞬态变化非常快。如果电源走线过长、没有足够容量的去耦电容,射频前端的电源电压纹波就会直接影响发射功率和接收灵敏度,表现出来就是"能连上 WiFi 但速度很慢、掉线频繁"。

实际可行的做法是:在芯片电源引脚附近放一个 10uF 钽电容或者低 ESR 陶瓷电容作为储能,再放一组 100nF 高频去耦电容。如果整板供电由 LDO 提供,务必选压差低、瞬态响应好的 LDO,或者直接使用 DC-DC 再加后级 LDO 的架构。不要图省事用一颗 AMS1117 想让 ESP32 满功率跑 WiFi,AMS1117 的瞬态响应在这种负载变化下很容易掉电压。

5.2 时钟与复位:晶振不是随便焊一个就行

40MHz 主晶振对于 ESP32 来说不只是提供 CPU 时钟,还直接决定了 WiFi 和蓝牙射频本振的参考精度。晶振的负载电容需要按芯片数据手册推荐值选择,常见是 12pF 到 22pF 之间。选错负载电容会导致频率偏差过大,WiFi 的中心频点偏移,严重时甚至无法完成连接。RTC 晶振也不能省,虽然 ESP32 内部有 RC 振荡器可以暂时运行,但低功耗睡眠模式必须依赖 32.768kHz 晶振来维持计时和唤醒精度。

复位电路最简单可靠的方案是使用专用的复位芯片(如 TPS3823 等)或者简单在 EN 引脚上接一个 10k 上拉电阻,再并联一个 100nF 电容到地,让上电时 EN 引脚缓慢上升,避免芯片启动时序异常。没有经验的人直接悬空 EN 引脚,会导致上电瞬间芯片进入不确定状态,尤其配合廉价电源时这个问题非常致命。

5.3 Flash 连接与下载电路

ESP32 通过 SPI 接口连接外部 Flash,推荐使用四线 QSPI 模式以获得更好的读取速度。连接线尽量等长、走线尽量短,Flash 的片选引脚需要有明确的上拉或按数据手册配置。下载方面,ESP32 支持 UART 下载模式,需要把 GPIO0 在进入下载前拉低。实际电路上用一个跳线、按钮或者三极管开关都可以实现。

量产时通常还需要设计自动下载电路。常见做法是使用 CP2102N 或 CH340 等 USB 转串口芯片,把 DTR 和 RTS 信号通过三极管逻辑组合来控制 EN 和 GPIO0 的上电时序,从而实现"免按键一键下载"。网上有很多公开参考电路,但需要注意不同 USB 转串口芯片的反相逻辑不完全一致,照抄时务必核对电平关系。这个电路调好了能大幅提升产线效率,调不好则会让每一片板子都变成"下载失败"的重灾区。

5.4 天线净空与射频走线:决定成败的隐藏规则

芯片方案的射频引脚输出的是 2.4GHz 的高频信号,必须经过匹配网络再送到天线。数据手册会给出一个参考匹配电路,通常是几个电感和电容,但参考电路里的元件值和 PCB 寄生参数强相关,实际板子需要微调。没有网络分析仪就别想在这个环节靠肉眼调好。

天线周围必须有净空区,PCB 天线、陶瓷贴片天线和 IPEX 座都有各自的净空要求。常见的错误是天线下方铺地、天线附近走其他信号线、天线旁边放金属螺柱或者结构件,这些都会改变天线谐振频率和增益。如果你对这个领域没有把握,最保险的方法是先抄官方的参考设计布局,再结合结构微调,不要自创天线形状。

6. 常见问题与排查技巧实录

6.1 芯片方案 WiFi 信号差、连接不稳定

这类问题的排查顺序建议是:电源纹波、晶振频率、天线匹配、天线净空。先示波器看射频发射时 3.3V 的跌落幅度,如果瞬态跌落超过 300mV,先把电源加强再说;再用频率计或频谱仪看 40MHz 晶振的频率偏差是否在 ±10ppm 内;最后才是天线性能。很多所谓"WiFi 距离不够"的板子,最终查出来是电源问题而不是天线问题。

6.2 下载失败、无法进入下载模式

这是我见过最多的问题之一。现象是串口助手能识别 USB 转串口,但 esptool 报连接超时。先检查 GPIO0 是否在进入下载时确实为低电平,再看 EN 引脚的上电复位时序,如果下载时序不正确,芯片会在 bootloader 完成之前就被复位。另一种常见原因是串口芯片的 TX 与 RX 接反,或者没有做电平交叉。用万用表测量直通,基本能排掉八成故障。

6.3 Flash 容量识别不对或 OTA 升级失败

如果你用的模组标称 16MB Flash,但启动日志显示只有 4MB,说明 eFuse 中的 Flash 容量配置不正确。官方工具 espefuse 可以读取和修改这部分配置,但修改前务必先备份原始配置,并且确认目标 Flash 的实际电压等级是 1.8V 还是 3.3V。这个操作失败后,芯片的启动流程会直接异常,基本只能换芯片。

6.4 买到假芯片或"翻新料"

ESP32 裸芯片市场有一些来源不明的所谓"全新拆机料"和"国产替代丝印"。正规途径是通过乐鑫授权代理商购买,或者从信誉良好的现货经销商拿货。芯片上的丝印和批次号可以通过乐鑫官方渠道查验。模组市场的乱象主要集中在老款 ESP-WROOM-32 和翻新 WROOM-32E 上,如果渠道价格比市场均价低得离谱,大概率有猫腻,别贪便宜用到量产产品里。

6.5 一个容易被忽略的细节:GPIO 上电瞬间的电平冲突

ESP32 某些引脚在上电复位期间会输出特殊电平或者处于高阻态,如果外设驱动能力较强,可能在启动瞬间导致芯片进入异常模式。例如 GPIO12 控制 Flash 电压,外部接了下拉电阻会错误地让芯片以为 Flash 电压是 1.8V,导致 Flash 无法工作。设计原理图前必须阅读数据手册中对"Strapping Pin"的说明,这些引脚在 Efuse 配置和启动过程中承担额外职责,不能随意接大电容或强上下拉。

7. 选型思路的最后一环:给自己留够试错空间

在把料号发给采购之前,我还有三个实践建议想分享。第一,如果时间允许,先买模组做原型,等工作稳定后再评估是否切换芯片方案。模组到芯片的切换在软件层面通常只影响引脚编号和启动配置,但在硬件层面是一次全新设计,不要指望直接替换。第二,批量产品的备料不要只盯一家现货商,至少在两家渠道各留几十片安全库存,并且确认渠道提供的批次号一致,避免模组固件版本混用导致产线测试软件不稳定。第三,无论是芯片还是模组,拿到实物后第一时间用官方工具读取芯片信息和 Flash 信息,建立自己的"料号指纹库",这样后续排查问题时能快速定位是硬件批次问题还是软件配置问题。

还有一个我踩过几次坑后的深刻体会:做选型的时候,不要只算当前 BOM 价格,要把工程师调试时间、产线不良率、认证周期、售后返修成本全部放进去。ESP32 这颗芯片本身已经足够便宜,真正让硬件项目超支的地方往往不是元器件价格,而是反复打样、反复调试和反复认证的隐性成本。模组方案在这几个方面天然有优势,这也是它能在这么多物联网产品里成为主流的原因。

如果你现在正在纠结第一款联网产品的选型,我的建议是:除非你有明确的射频设计需求和大批量降本压力,否则第一版直接用官方推荐模组。先让产品跑起来、把用户体验验证好,等到销量上去了再考虑芯片方案。毕竟把一个不稳定的方案量产,省下的那几块钱,最后都会变成售后电话和现场维护的账单还回去。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 7:48:39

Loop Engineering 的代价:LLM 可用性靠 TaoToken 统一 Key 买出来

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/7 7:48:30

mongoose 中文排序问题:用 collation 与 locale 让 sort 按拼音生效

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/7 7:48:22

裸机与RTOS之争:单片机多任务处理如何选型与迁移实践

“单片机不搞RTOS?你他妈怎么跟人拼多任务处理?”——这话火药味十足,但放到嵌入式圈子里,其实就是老鸟们隔三差五就要吵一架的核心问题。一边是“我裸机状态机照样跑十个功能”的实战派,一边是“你东西一复杂就等着屎…

作者头像 李华
网站建设 2026/10/7 7:48:21

Linux 一键安装 Hermes Agent:用 TaoToken 统一 Key 打通本地 Agent 调用链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华