news 2026/9/30 1:23:56

ESP32物联网项目开发指南:如何高效寻找可靠的参考设计方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ESP32物联网项目开发指南:如何高效寻找可靠的参考设计方案

很多朋友来问我:“我想做一个 ESP32 物联网项目,第一步是不是应该赶紧刷教程学代码?”我的建议是:别急着刷教程,先找参考方案。教程给你的是“一步步怎么走”,参考方案告诉你“终点长什么样、整个系统由哪些块拼起来”。这两件事优先级完全不同。以我自己这几年折腾 ESP32 的经验来说,真正让我省下大把时间的,不是看了多少篇保姆级教程,而是建立了一条“找参考设计”的固定路径:先官方、再原厂、后社区,最后才轮到各种零散的代码片段和教程。这篇文章就把这条路径完整拆给你看,顺便把每一步对应的资源类型、搜索方法、坑点都理清楚。

1. 先搞清楚:参考方案不是“教程合集”,它有三要素

先说个我观察到的现象:很多人搜“ESP32 物联网项目”,出来一堆博客教程、B站视频、GitHub 仓库,然后就一头扎进去,照着敲代码。敲到一半发现缺硬件接线图,又去搜别的教程;代码跑通了,想加点功能,又发现在别人的工程上改不动。问题就出在——你找的根本不是“方案”,而是“碎片”。

1.1 参考方案的完整定义

我判断一个东西能不能叫“ESP32 物联网参考方案”,标准很简单:它必须同时具备三样东西。

第一,硬件说明。原理图或者至少是完整的接线图,芯片型号、引脚分配、电源设计、传感器连接方式都写清楚。第二,软件工程。不是一小段演示代码,而是一个能跑通完整功能的工程,里面带配置、带注释、带构建说明。第三,文档说明。告诉你怎么烧录、怎么配置网络、怎么对接云平台,最好还有调试记录。

三者缺一不可。为什么?因为物联网项目本身就是“传感器+主控+通信+云平台/APP”的组合体,只给你代码,你没法解决硬件上的问题;只给你原理图,你又要花时间猜固件逻辑。只有三者齐全,才能叫“参考方案”。这也是后面所有优先级选择的核心标准。

1.2 用物联网三层架构给资料分类

物联网行业里常讲的“三层架构”——感知层、网络层、应用层——在这里特别好用。找参考方案之前,先把这三层在脑子里面立起来,你才能知道自己缺哪块的资料。

感知层负责数据采集和控制执行,对应的是温湿度传感器、继电器、电机驱动这类东西的电路参考和驱动代码。网络层负责数据传输,对应的是 WiFi、蓝牙、MQTT、HTTP、TCP/IP 这些通信方案的例程。应用层负责数据展示和远程控制,对应的是云平台对接、小程序/APP 开发、数据可视化的工程示例。

举个例子,你想做“食用菌栽培车间环境监控系统”,按三层一拆就很清楚:感知层要找温湿度/CO2 传感器电路参考,网络层要找 ESP32 的 WiFi + MQTT 上报参考,应用层要找云平台看板或微信小程序接收数据的参考。这样找方案特别快,你不会因为搜到一个“ESP32 智能家居”项目就盲目跟抄,而是有选择地拿它其中某一块来用。

1.3 优先级总览:离原厂越近越可靠

我给参考资源的优先级排了个序,后面几章全部围绕这个顺序展开:

优先级资源来源典型代表解决什么问题主要风险
第一乐鑫官方ESP-IDF examples、硬件设计指南、官方方案仓库芯片级正确性、API 用法、硬件设计底线偏底层,上手门槛略高
第二开发板/模组原厂官方开发板原理图、模组厂商应用手册可直接抄的电路设计、最小系统、射频布局需要自己改引脚和外设
第三社区开源GitHub 高星项目、立创开源广场完整产品级方案、行业应用范例质量参差不齐,版本混乱
补充竞赛/教程/零散代码国赛赛题、毕设博客、云平台 SDK 示例需求拆解、平台对接、验证思路往往是半成品,需二次开发

记住一个原则:参考方案的可靠性,基本等于它离芯片原厂的距离。离得越近,越不会给你埋雷。这不是说社区方案不好,而是说社区方案默认你已经有能力分辨好坏,而官方方案默认你是个刚入门的新手——它把坑都标好了。

2. 第一优先级:乐鑫官方参考设计,千万别跳过

我见过太多人一上来就翻 GitHub 的第三方库,反而把乐鑫官方放出来的东西丢在一边。其实官方给 ESP32 物联网工程的参考设计,比绝大多数人想象得要全,而且是完全免费的。关键是你得知道去哪里找、找什么。

2.1 ESP-IDF examples 目录就是一个现成的方案库

如果你还没装 ESP-IDF,建议直接看官网的安装说明,在 Windows/Linux/macOS 上都有现成的安装器。装完以后你本地会有这样一个目录:esp-idf/examples。这个目录我看一次夸一次,因为它里面的示例工程,全部是“最小但完整”的物联网系统参考。

举几个实用的目录你就明白了:

  • examples/protocols/mqtt:ESP32 连接 MQTT 服务器的完整示例,代码结构、证书配置、重连机制全都有,做上云项目直接拿它当骨架。
  • examples/wifi/station和examples/wifi/softap:WiFi 连接路由器、或者自己开热点的两种基础网络用法,任何联网项目都绕不开。
  • examples/peripherals/:下面分了 gpio、i2c、spi、uart、adc 各种外设示例,接传感器、接屏幕、接 GPS 模块都能找到对应例程。
  • examples/storage/nvs_rw_blob:本地保存配置信息的方法,物联网设备重启后保留参数的常见需求。

这个方法好在哪里?因为官方的示例代码严格按照当前 ESP-IDF 版本来维护,你复制出来的代码一定跟这个版本 API 兼容。比你在网上找 2021 年的博客代码然后跑出一堆编译错误要省事得多。

2.2 硬件设计指南里藏着你最容易踩的坑

很多人以为参考方案只等于“参考代码”,这是个巨大的误解。硬件设计指南才是乐鑫所有参考方案里含金量最高的文档之一,尤其 ESP32 系列对电源和射频非常敏感。

我强烈建议去乐鑫官网下载对应芯片的《Hardware Design Guidelines》(硬件设计指南)和芯片《Datasheet》。里面通常包含这些内容:

电源供电参考电路、去耦电容布局方式;晶振选型和放置位置要求;天线净空区、射频走线阻抗匹配的典型做法;外设引脚复用和 Strapping 引脚的注意事项;ESD 防护方案的参考电路。

举个我实际踩过的例子:早期我画一块 ESP32-WROOM-32 的板子,参考的是一个盗版开源工程的 PCB,天线下方居然走了根地线,结果 WiFi 信号衰减得厉害,隔一堵墙就掉线。后来对照官方硬件设计指南才发现,天线净空区的处理有明确要求,原来那个“开源工程”在设计上就是不完整甚至有错的。从那以后,我凡是自己画板,硬件设计指南必看,而且以它为最高优先级,社区开源的 PCB 布局只能当辅助参考。

2.3 官方方案仓库和 Arduino 环境的版本密钥

除了 ESP-IDF 自带的 examples,乐鑫在 GitHub 上还维护了几个更贴近工程应用的仓库:

  • espressif/esp-iot-solution:官方物联网解决方案集合,里面有针对电能计量、语音识别、显示交互、传感器采集等场景的应用参考。
  • espressif/esp-dev-kits:官方开发板的原理图、PCB、BOM、机构文件都放在这里,做硬件参考非常好使。
  • espressif/arduino-esp32:用 Arduino 的朋友注意,这个仓库非常重要。它每个 release 都会标明对应的 ESP-IDF 版本和支持的芯片列表,这是你解决“代码在别人那能跑、在自己这编译不过”问题的钥匙。

顺便说一下环境下载的经验。很多初学者卡在 “arduino ide esp32 离线安装包” 和 “esp32 espidf 安装管理器” 这一步,我建议你直接用乐鑫官方提供的国内源或者离线包。ESP-IDF 在线安装器里面目前有镜像源选项,选一个网络环境好点的即可。Arduino IDE 那边,开发板管理器 URL 换成国内可用同步源,或者直接找一个完整的 esp32 离线安装包装进去。环境装好后,再把官方 examples 拉到本地,之后哪怕断网也能安心看代码。

3. 第二优先级:开发板原理图与模组原厂资料,最快的“抄作业”来源

等官方视频看完了、示例代码也跑通了,接下来要做的是设计自己的电路。这时候第二优先级的东西就顶上来了:官方开发板的原理图,以及模组厂商公开的应用资料。为什么它们比社区草根方案可靠?因为开发板是乐鑫自己设计并量产的硬件,每一根走线都是经过验证的。

3.1 官方开发板原理图里能学到什么

乐鑫官方开发板里最常见的是 ESP32-DevKitC 和 ESP32-WROVER-KIT。它们的原理图在espressif/esp-dev-kits仓库里都能下载到,PDF 格式,PCB 也能拿到源文件。

拿到原理图以后,重点看这几部分:

  • 模组最小系统电路:ESP32 模组本身的外围电路,包括 EN 使能、GPIO 引出、各路电源去耦电容。
  • USB 转串口和自动下载电路:DevKitC 上用的是板载 USB-to-UART 芯片,以及经典的自动下载电路——通过 DTR/RTS 控制 EN 和 IO0,实现免手动按键烧录。这个电路对你做自己的产品板子非常关键。
  • 电源设计:官方板子有的用 LDO 直接转换 USB 5V 到 3.3V,有的用 DCDC。你能学到它对输入电容、输出电容的选型,以及 3.3V 电源轨上的负载能力设计。
  • 按键和 LED 的接法:BOOT 按键、EN 按键、电源指示灯这些基础外设看似简单,但引脚选择也有讲究,比如哪些 GPIO 默认是 strapping 引脚,不能随便接 LED 或按键,官方原理图会给你标准答案。

我常跟人打比方:官方开发板原理图就是“乐鑫帮你做好的最小系统家庭作业”,你照着里面的电源和模组部分抄到自己的工程里,出问题的概率极低。

3.2 模组厂商的应用手册和应用电路

国内做 ESP32 模组的厂商非常多,比较常见的是安信可、海凌科、天工测控等。这些厂商的官网通常都提供模组的 Datasheet、AT 指令集、硬件设计手册和示例工程。

为什么我把它列为第二优先级?因为模组厂商会在官方模组的基础上,加上外置天线、连接器、屏蔽盖、更大的 Flash 等改动,等于在原厂基础上做了二次工程化设计。如果你用的是它们家的模组,那就必须以它们提供的模组封装尺寸、引脚定义、天线匹配电路为准。曾经有个朋友,买的是带 IPEX 外接天线座的模组,却直接抄官方 WROOM 模组的 PCB 封装,焊上去之后射频性能一团糟。这就是典型的“方案来源优先级搞错了”——该用模组原厂参数的时候,不能死守芯片原厂的设计。

3.3 把参考电路搬进自己设计的关窍

看了原理图不代表能抄好,我在带新人的时候发现有几个地方几乎必错。

第一,3.3V 电源。很多 ESP32 应用里除了模组,还要带 OLED 屏、传感器、继电器逻辑供电,电流加起来可能超过 LDO 的散热能力。建议先算总功耗,再选 LDO 或 DCDC,不要直接照抄开发板的 LDO 型号。第二,EN 引脚不能悬空。EN 必须接上拉电阻和去耦电容,最好再加一个复位按键。第三,GPIO 应用引脚要避开启动约束。比如 GPIO0 默认是进入下载模式的 strapping 引脚,GPIO12 是 VDD_SDIO 电压选择引脚,直接把它们当普通 IO 用,可能造成无法烧录或者启动异常。

我现在的习惯是:做一个 ESP32 物联网板子时,电源、模组、下载调试三部分电路,直接从官方开发板原理图和模组手册里面“抄”,传感器、继电器这些应用电路,再从具体芯片的 Datasheet 的参考电路里面取。两层叠加,就是一份很可靠的硬件参考。

4. 第三优先级:社区开源项目,关键是给项目“体检”

社区项目是大家最熟悉的参考方案来源,但也是最容易让人翻车的地方。你去 GitHub 搜esp32 iot,能出来上万个仓库,可里面能让你从原理图到代码完整跑通的,可能连十分之一都不到。剩下的大多是单一功能的 demo,或者写了一半就断更的半成品。这不是社区资源不行,而是搜索方法不对。

4.1 GitHub 的正确搜索姿势

在 GitHub 上找 ESP32 物联网参考方案,直接敲关键词是最低效的办法。我一般用组合条件:

esp32 iot language:C++ stars:>100esp32 mqtt language:Ctopic:esp32 topic:iotesp32 sensor dashboard加时间过滤,比如pushed:>2023-01-01

把这些条件组合起来,能过滤掉大量灌水仓库。另外,不要只盯 stars,重点看仓库最近有没有活跃提交。一个三年前火了、之后就没人维护的仓库,很可能还停留在老版本的 API 上,你照着写代码,光编译报错就够你受的。

应用层的参考,我建议直接看那些已经被大规模部署的开源项目,比如 Tasmota、ESPHome、Home Assistant 的 ESP32 支持部分。这些项目的代码质量、文档完整度、硬件适配列表都远超普通个人项目,适合当“应用层参考方案”来读,而不是从零开始自己搭一套。

4.2 立创开源广场和其他硬件平台

除了 GitHub,国内做硬件开源分享的平台也很值得逛,我主要用立创开源广场。这里的项目多用立创EDA绘制,原理图、PCB、BOM、源码是打包发布的,你甚至可以直接克隆工程改一改打板。搜“ESP32 物联网”“ESP32 网关”“ESP32 温湿度”能看到大量带完整硬件设计的工程。

不过要注意:立创开源广场有些项目是学生练手用的,看着漂亮,实则很多细节不严谨。我的筛选标准是看三点:BOM 齐全不齐全、PCB 文件能不能正常打开、作者有没有写清楚测试过程和实物照片。三者都有,这个项目才算有效的参考方案。

4.3 给开源项目做“体检”的清单

经过这几年的实践,我整理了一套社区开源项目的体检清单,每次选中一个项目,先对照一遍再决定是否深入:

  • README 是否完整,有没有写明硬件型号、引脚连接、编译环境、烧录步骤。
  • 有没有原理图或清晰的接线图,而不是只有代码和几句说明。
  • 代码是否在维护,最近 commit 时间,issue 区有没有人提问、作者有没有回复。
  • 是否说明了测试环境,有没有实物运行的照片或视频。
  • 许可证是否明确,是否能用于学习和修改。
  • 硬件方案是否跟我的需求匹配,比如用的是 ESP32-C3 还是 ESP32-WROOM-32,引脚定义有没有冲突。

这套体检做完,再花一天时间把项目在本地跑通,觉得没问题再往上叠加自己的功能。你会发现,被淘汰的方案都是在体检阶段就出局的,真正进入开发阶段的仓库,成功率明显提高。

5. 毕设和竞赛场景:从题目倒推方案,按三层架构组合资源

很多来找我聊 ESP32 物联网方案的人,其实是学生,手里拿着毕业设计题目或竞赛要求。这类场景最大的误区是“一个项目从头抄到尾”,正确的做法是从题目倒推需求,再按前面说的三层架构,从不同优先级资源里组合出你的方案。

5.1 需求拆解是找方案的第一步

以热搜里那个非常典型的题目为例:“食用菌栽培车间物联网环境智能监控系统设计”。

拿到这个题目,先拆需求,而不是先搜项目。食用菌栽培需要监控什么?通常有温度、湿度、CO₂浓度、光照强度,还要控制风机、加湿器、补光灯。那么对应到物联网三层架构:

  • 感知层:需要选温度和湿度传感器、CO₂传感器、光照传感器。这块参考资源最丰富,官方 examples 里的i2c例程配合传感器模块的数据手册,基本就能搞定。
  • 控制执行:风机和加湿器需要继电器或可控硅,参考开发板上的 GPIO 控制电路,再查继电器模块 Datasheet 的驱动电路。
  • 网络层:数据怎么上传?ESP32 最稳妥的路径就是 WiFi + MQTT,直接从官方examples/protocols/mqtt工程起步,把传感器数据组成 JSON 发布出去。
  • 应用层:远程监控界面呢?可以用阿里云物联网平台、OneNET 这类现成的云平台,它们的控制台自带设备管理和数据可视化,也有现成的 SDK 示例,比如阿里云物联网平台的 Android SDK。

这么一拆,你会发现这个“大项目”其实是由四五个相对独立的参考方案拼起来的,每一块都能找到对应的成熟资料。

5.2 竞赛场景的特殊参考路径

全国职业技能大赛物联网应用与服务赛项这几年的赛题也是常被搜索的热点。这套比赛和你个人开发 ESP32 项目还不一样,它通常涉及硬件安装、设备配置、网络联调、云平台配置、数据可视化等一系列流程,考察的是整套物联网工程交付能力。

如果以竞赛为目标找参考,我建议从这几个方向入手:找赛题对应的设备厂商手册和安装调试指南,这类资料最贴近实际考核内容;找往届选手分享的技术博客,里面有详细的调试过程和评分点分析;拿 ESP32 官方示例当基础技能训练素材,把传感器采集、云平台上报、规则联动这些练到闭眼能做。

5.3 特殊应用需求的方案来源

如果你的项目不是标准环境监控,而是更特殊的应用,比如蓝牙 APP 控制 ESP32、ROS2 humble 串口桥接 ESP32 小车、ESP32 加差分 RTK 模块做高精度定位、用 pjsip 做语音通话,这些在这个标题的框架下依然是“找参考方案”的思路。

先说蓝牙 APP 控制:官方examples/bluetooth里就有 GATT 服务的完整示例,APP 端可以在 GitHub 搜ESP32 BLE APP,找到几个开源项目拼一拼,应用层参考就齐了。ROS2 humble 串口桥接 ESP32 小车这种,说白了是通信协议层的问题,你先搜有没有现成的话题包或协议桥接库,没有就自己定义串口协议,这部分参考官方 UART 例程和自己定的字段规则就够了。差分 RTK 模块也类似,关键不在 ESP32,而在 RTK 模块输出的 NMEA 协议解析,官方 UART 例程加上模块手册就是全部参考方案。pjsip 这类语音方案,乐鑫官方有音频处理框架的例子,再加上 pjsip 本身的开源文档,按层次各取所需。

这类特殊项目往往没有完整的、现成的“全套参考方案”等着你,但你只要能定位到它属于哪一层的问题,然后用每层对应的官方或原厂资料去拼,这个方案一样能搭出来。

5.4 云平台和协议栈的参考价值

物联网项目要想做完整,云平台对接是绕不开的一环。不管是你自己搭的服务器,还是阿里云物联网平台、腾讯云 IoT、OneNET,官方 SDK 里的示例本身就是优质参考方案。我曾经接过一个项目,要求数据必须上阿里云物联网平台,我当时直接下载了官方 ESP32 SDK 示例,把设备三元组配置填进去,跑通后再改自己的业务逻辑。整个过程没超过两天,比从零研究 MQTT 协议细节再自己实现安全认证高效太多了。

所以我把这些平台 SDK 的优先级提得很高:当你确定要用某个云平台时,它的官方示例就是你应用层的第一参考,优先级甚至高于社区的开源方案。

6. 大量翻车后总结的实战经验

前面讲的都是方法论,这一节聊聊具体踩过的坑,都是真金白银买来的教训。我自己的习惯是每个项目结束以后做一次复盘,这几年下来,ESP32 物联网工程里最容易出问题的环节,其实就那么几个。

6.1 电源设计问题:我的板子一上电就重启

很多 ESP32 物联网设备是直流供电或电池供电的,参考方案里的电源部分看着简单,其实最容易翻车。ESP32 模组在 WiFi 发射瞬间电流可以有几百毫安的尖峰,如果你的 3.3V LDO 余量不足,电压就会被拉低,造成模组掉电重启。早期我做一块带 OLED、温湿度传感器和继电器的板子,一上电 WiFi 连接就重启,排查了大半天才发现是 LDO 最大输出电流不够。

现在我的做法是:先估算整板峰值电流,给 3.3V 电源至少留 30% 余量;优先使用静态功耗低、压差小的 LDO,如果系统有多个大功率外设,直接考虑 DCDC。这个经验对你的参考方案选择同样适用——看到一个开源工程,先看它的电源设计靠不靠谱,电源不靠谱的其他都不用看了。

6.2 版本和库的匹配问题:代码在别人那能跑,你这里编译不过

这个问题我几乎每周都能遇到。ESP-IDF 从 v4 到 v5,很多 API 结构变了;Arduino-esp32 从 2.x 升到 3.x 以后,也调整了大量与无线相关的接口。网上很多教程是基于老版本写的,你如果装的是新版本,编译报错是必然的。

解决办法只有一条:选一个固定版本作为你的基线,然后把参考方案里用到的库版本锚定到同一套环境。比如我用 Arduino IDE 做项目时,就会固定使用 esp32 开发板包的某个版本,比如 3.3.11,所有参考代码都优先选跟这个版本兼容的仓库。官方在 GitHub 上每个 release 都标注了兼容的 ESP-IDF 版本,这就是你排查版本问题时的权威依据。

6.3 烧录和下载环节:看起来简单,细节一堆

烧录 ESP32 常见的方式有几种:ESP-IDF 命令行用idf.py flash,Arduino 用 IDE 直接上传,还有 Flash Download Tools 这种图形工具。初学者最容易遇到的问题就是串口驱动没装好、下载模式进不去、或者自动下载电路不工作。

我的经验是:能自动下载就用自动下载电路,别总手动按 BOOT 键;确认 CH340/CP210x 驱动版本正确;检查下载时的串口和波特率设置。如果你做的 ESP32 工程还带电池供电,建议先把电池断开,用 USB 供电下载,这样能减少不少异常情况。

6.4 环境问题的现实解法

最后说一个很实际的体验。很多朋友卡在第一步:ESP-IDF 或者 Arduino esp32 的开发环境装不上、下载慢。乐鑫官方已经在国内做好了很多基础设施,比如 ESP-IDF 安装管理器可以选国内镜像源,Arduino 开发板管理器的 URL 也可以换成国内可用地址,或者直接找 esp32 离线安装包,装完就能用。

我个人现在的工作流是:本地保留一份固定的 ESP-IDF 版本和 Arduino-esp32 离线包,同时把官方 examples 和硬件设计指南放到项目文件夹里,做到“断网也能干活”。找参考方案这件事,说到底不是为了让你到处翻网页,而是为了积累一个越用越顺手的本地方案库。每次接新项目,我先花半天把参考方案分类归档,之后真正开发起来,返工率比早期乱搜时代低太多了。

你如果能养成这个习惯,从“找到一个方案”变成“建立一套资源库”,那你对 ESP32 物联网工程的理解,就已经超过绝大多数靠临时搜索过日子的开发者和学生了。

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

基于Python的多类别文本分类实战:从TF-IDF到混淆矩阵全解析

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

作者头像 李华
网站建设 2026/9/30 1:22:42

PyTorch LSTM量化交易全流程:数据清洗、模型训练与策略回测

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

作者头像 李华
网站建设 2026/9/30 1:22:39

手把手写RT-Thread hwtimer驱动:先楫BSP完整实现

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

作者头像 李华
网站建设 2026/9/30 1:22:39

毫米波雷达目标识别全解析:点云生成、4D雷达与工程实践

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

作者头像 李华
网站建设 2026/9/30 1:22:28

同步与互斥:并发编程中不可绕过的底层生存法则

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

作者头像 李华
网站建设 2026/9/30 1:21:06

AI芯片到底是什么?架构、算力指标与工程选型实战

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

作者头像 李华