news 2026/9/13 14:34:45

Arduino-ESP32 开发板选型完全指南:从 SoC 家族到官方开发板与第三方板卡

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Arduino-ESP32 开发板选型完全指南:从 SoC 家族到官方开发板与第三方板卡

Arduino-ESP32 开发板选型完全指南:从 SoC 家族到官方开发板与第三方板卡

【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32

本指南以 Arduino-ESP32 官方文档(docs/en/boards/boards.rst)为骨架,面向正准备入手 ESP32 开发板的开发者,系统讲解 ESP32 芯片家族的分类与差异、SoC / 模组 / 开发板三层结构的关系、购板前的关键考量点,并逐一介绍 Espressif 官方推荐的 ESP32-DevKitC-1、ESP32-S2-Saola-1、ESP32-C3-DevKitM-1 三款开发板的规格、引脚定义、启动配置(Strapping)引脚与使用限制,同时结合本仓库的 boards.txt、docs/en/getting_started.rst 与variants/目录源码,给出可落地的选型与上手指引。读完本文,你将能根据项目需求(Wi-Fi/BLE、Zigbee/Thread、USB、低成本等)准确选择 SoC 与板卡,并规避常见的引脚误用问题。


一、从"一个 ESP32 管所有"说起:ESP32 家族全景

很多初学者最大的困惑是:市面上有 ESP32、ESP32-S2、ESP32-S3、ESP32-C3、ESP32-C6……型号多得让人眼花缭乱。事实上,ESP32 是按"家族(Family)"划分的,每个家族对应一颗不同的 SoC(片上系统),它们面向不同的应用场景。官方文档在 docs/en/boards/boards.rst 中给出了完整的家族列表,各家族核心能力如下:

SoC 家族核心特性
ESP32Wi-Fi、蓝牙经典(BT)与 BLE 4.x
ESP32-C2 [#rebuild-required]_Wi-Fi 与 BLE 5
ESP32-C3Wi-Fi 与 BLE 5(RISC-V 单核)
ESP32-C5双频 Wi-Fi 6、BLE 5 与 IEEE 802.15.4
ESP32-C6Wi-Fi 6、BLE 5 与 IEEE 802.15.4
ESP32-C61 [#rebuild-required]_Wi-Fi 6 与 BLE 5
ESP32-H2BLE 5 与 IEEE 802.15.4(无 Wi-Fi,主打 Thread/Zigbee)
ESP32-P4400 MHz 双核 RISC-V CPU、40 MHz ULP 协处理器、单精度 FPU 与 AI 扩展
ESP32-S2仅 Wi-Fi(无蓝牙)
ESP32-S3Wi-Fi 与 BLE 5

关于 ESP32-C2 与 ESP32-C61 的支持方式:这两个家族只有在"使用 Arduino 作为 ESP-IDF 组件"或"重新构建静态库"两种方式下才受 Arduino-ESP32 支持。官方文档在 docs/en/getting_started.rst 的 Supported SoC 表格中同样标注了这一限制,并指引读者参考 esp-idf_component.rst(Arduino 作为 ESP-IDF 组件)或 lib_builder.rst(Lib Builder 重建静态库)两份文档。从本仓库的 boards.txt 也可以印证这一点:esp32c2.name=ESP32C2 Dev Module后紧跟一行esp32c2.hide=true,即 ESP32-C2 的板卡定义默认是隐藏的,普通 Arduino IDE 的板卡管理器列表中并不会直接显示它。

各家族在 Arduino-ESP32 中的支持状态

getting_started.rst 的 "Supported SoC's" 章节进一步按Stable(稳定)Development(开发)两个轨道标注了每个家族在 Arduino-ESP32 中的支持状态:

  • Stable + Development:ESP32、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-H2、ESP32-P4、ESP32-S2、ESP32-S3
  • 需特殊方式支持:ESP32-C2、ESP32-C61(作为 ESP-IDF 组件或重建静态库)

换句话说,绝大多数开发者日常会接触到的 ESP32 家族芯片,都已经进入 Arduino-ESP32 的稳定支持轨道。本文撰写时仓库 cores/esp32/esp_arduino_version.h 中声明的核心版本为3.3.11ESP_ARDUINO_VERSION_MAJOR=3ESP_ARDUINO_VERSION_MINOR=3ESP_ARDUINO_VERSION_PATCH=11),选型时如遇到较新的芯片(例如 ESP32-C5、ESP32-P4),建议确认所用核心版本是否已覆盖。


二、SoC、模组(Module)与开发板:三层结构的正确理解

ESP32 SoC 与模组结构示意

文档特别强调了"一颗 ESP32 管所有(One ESP32 to rule them all)"这一关键认知:

  • SoC(芯片):Espressif 设计的内核芯片本身,例如 ESP32、ESP32-S3。
  • 模组(Module):在 SoC 基础上集成外部 Flash、PSRAM(部分型号)、晶振及其他必要电子元件后封装成的整体,例如 ESP32-WROVER、ESP32-WROOM。同一家族的模组,核心用的都是同一颗 SoC
  • 开发板(Development Board):把模组、USB 转串口芯片、电源电路、引脚排针等集成到一块 PCB 上,方便开发者直接接线、烧录和调试。

文档给出了一个非常具体的例子:

假设一颗 SoC 的型号是ESP32-D0WD-V3,它同时被用在ESP32-WROVER(带 PSRAM)和ESP32-WROOM两款模组内部。这意味着这两款模组的"心脏"拥有完全相同的核心特性——区别只在于模组外围(如是否外挂 PSRAM、Flash 容量)以及封装形式。

对于每个家族内部的不同 SoC 变体,差异主要体现在三方面:

  1. 内嵌 Flash 及其容量
  2. 核心数量(双核或单核);
  3. 其他如 PSRAM、封装尺寸等外围差异。

理解"模组不同、心脏相同"之后,选型时就可以先定 SoC 家族,再定模组(关注 Flash/PSRAM),最后选一块搭载该模组的开发板。关于具体型号的详细选型,Espressif 官方提供了"产品选择器(Espressif Product Selector)"在线工具(datasheet.inc 中亦重复引用了该工具作为各家族数据手册的入口)。


三、购买开发板之前:四个"必须要有"的考量点

boards.rst 明确指出,市面上开发板型号繁多、质量参差不齐,购买前应重点核查以下四个特征,以省钱、省时间

  1. 内嵌 USB 转串口芯片(Embedded USB-to-Serial)通过 USB 直接烧录程序、并用终端查看串口日志,是开发调试最便捷的方式。缺少该芯片的板卡往往需要额外购买 USB-TTL 转接器,徒增接线与排查成本。

  2. 面包板友好(Breadboard friendly)如果处于原型验证阶段,排针间距与引脚排布是否兼容标准面包板至关重要,直接影响你把板卡直接插到面包板上连接外设的便利性。

  3. 开源硬件(Open-source / open-hardware)优先选择原理图可以下载的板卡。公开原理图在原型设计、排查硬件问题、理解引脚复用关系时帮助极大。

  4. 厂商支持(Support)部分厂商会提供高质量的示例工程与演示项目。对初学者而言,厂商是否维护示例代码、是否及时跟进新核心版本,直接决定了上手体验。

建议把上述四点作为"购前检查清单"。尤其对于第三方板卡,由于板卡质量与文档完整度参差不齐,先看原理图、再看示例、最后下单,是比较稳妥的顺序。


四、Espressif 官方开发板详解

Espressif 官方在三款文档化开发板上提供了最完整的规格、引脚表与约束说明,是学习与原型验证的首选。下面依次展开。

官方文档说明:本页面只详细描述了少数几款开发板,更多 Espressif 官方开发板的信息请访问 Espressif 官网的 DevKits 产品页。

4.1 ESP32-DevKitC-1(经典 ESP32 双核首选)

  • 文档:docs/en/boards/ESP32-DevKitC-1.rst
  • 核心:ESP32,搭载ESP32-WROVER-E模组
  • 定位:功能最全的"万金油"开发板,Wi-Fi + 蓝牙双模,自带 PSRAM,适合绝大多数通用项目。

规格要点:

  • Wi-Fi 802.11b/g/n(802.11n 最高 150 Mbps)
  • 蓝牙 v4.2 BR/EDR 与 BLE
  • 内嵌 4 MB SPI Flash、8 MB PSRAM
  • PCB 天线或外置天线连接器
  • 外设覆盖:SD 卡、UART、SPI、SDIO、I2C、LED PWM、电机 PWM、I2S、IR、脉冲计数(Pulse Counter)、GPIO、电容触摸(Capacitive Touch)、ADC、DAC、TWAI®(兼容 ISO11898-1 的汽车级双线接口)

排针定义(J1 / J3,注意并非所有芯片引脚都引出到排针):

J1 排针:

No.名称类型功能
13V3P3.3 V 电源
2ENICHIP_PU,复位
3IO36IGPIO36, ADC1_CH0, S_VP
4IO39IGPIO39, ADC1_CH3, S_VN
5IO34IGPIO34, ADC1_CH6, VDET_1
6IO35IGPIO35, ADC1_CH7, VDET_2
7IO32I/OGPIO32, ADC1_CH4, TOUCH_CH9, XTAL_32K_P
8IO33I/OGPIO33, ADC1_CH5, TOUCH_CH8, XTAL_32K_N
9IO25I/OGPIO25, ADC1_CH8, DAC_1
10IO26I/OGPIO26, ADC2_CH9, DAC_2
11IO27I/OGPIO27, ADC2_CH7, TOUCH_CH7
12IO14I/OGPIO14, ADC2_CH6, TOUCH_CH6, MTMS
13IO12I/OGPIO12, ADC2_CH5, TOUCH_CH5, MTDI
14GNDG
15IO13I/OGPIO13, ADC2_CH4, TOUCH_CH4, MTCK
16IO9I/OGPIO9, D2
17IO10I/OGPIO10, D3
18IO11I/OGPIO11, CMD
195V0P5 V 电源

J3 排针:

No.名称类型功能
1GNDG
2IO23I/OGPIO23
3IO22I/OGPIO22
4IO1I/OGPIO1, U0TXD
5IO3I/OGPIO3, U0RXD
6IO21I/OGPIO21
7GNDG
8IO19I/OGPIO19
9IO18I/OGPIO18
10IO5I/OGPIO5
11IO17I/OGPIO17
12IO16I/OGPIO16
13IO4I/OGPIO4, ADC2_CH0, TOUCH_CH0
14IO0I/OGPIO0, ADC2_CH1, TOUCH_CH1, Boot
16IO2I/OGPIO2, ADC2_CH2, TOUCH_CH2
17IO15I/OGPIO15, ADC2_CH3, TOUCH_CH3, MTDO
17IO8I/OGPIO8, D1
18IO7I/OGPIO7, D0
19IO6I/OGPIO6, SCK

类型图例:P = 电源;I = 输入;O = 输出;T = 高阻态。

ESP32-DevKitC-1 引脚布局

Strapping(启动配置)引脚——这些 GPIO 在启动过程中承担特殊角色,选择引脚时必须留意:

GPIO默认状态功能上拉下拉
IO12下拉内部 LDO 电压(VDD_SDIO)1.8 V3.3 V
IO0上拉启动模式SPI BootDownload Boot
IO2下拉启动模式Don't CareDownload Boot
IO15上拉启动期间日志打印开关 / SDIO 从机时序U0TXD ActiveU0TXD Silent
IO5上拉SDIO 从机时序见数据手册见数据手册

受限 GPIO(Restricted Usage GPIO)

  • 不可使用的引脚(被外部 SPI Flash/PSRAM 占用):IO6、IO7、IO8、IO9、IO10、IO11。
  • 仅输入(INPUT ONLY)引脚(不能作为输出):IO34、IO35、IO36、IO39。

在 Arduino 代码中引用这些引脚时(例如pinMode/digitalWrite),务必避开受限列表;IO34/35/36/39 只读、IO6~IO11 被 Flash 占用,误用会导致程序行为异常或无法启动。

4.2 ESP32-S2-Saola-1(USB 与低成本 Wi-Fi 方案)

  • 文档:docs/en/boards/ESP32-S2-Saola-1.rst
  • 核心:ESP32-S2(Xtensa® 单核),搭载ESP32-S2-WROVER模组
  • 定位:仅 Wi-Fi(无蓝牙)、自带 USB OTG 的极简方案,适合键盘/触控/USB 外设类项目。

规格要点:

  • Wi-Fi 802.11b/g/n(最高 150 Mbps)
  • 内嵌 4 MB SPI Flash、2 MB PSRAM
  • 外设:43 × 可编程 GPIO;2 × 13-bit SAR ADC(最多 20 通道);2 × 8-bit DAC;14 × 触摸感应 IO;4 × SPI;1 × I2S;2 × I2C;2 × UART;RMT(TX/RX);LED PWM 控制器(最多 8 通道);1 × 全速 USB OTG;1 × 温度传感器;1 × DVP 8/16 位摄像头接口(复用 I2S 硬件资源);1 × LCD 接口(8-bit 串行 RGB/8080/6800,复用 SPI2);1 × LCD 接口(8/16/24-bit 并行,复用 I2S);1 × TWAI® 控制器(兼容 ISO 11898-1)
  • PCB 天线或外置天线连接器

Strapping 引脚:

GPIO默认状态功能上拉下拉
IO45下拉内部 LDO 电压(VDD_SDIO)1.8 V3.3 V
IO0上拉启动模式SPI BootDownload Boot
IO46下拉启动模式Don't CareDownload Boot
IO46上拉启动期间日志打印开关 / SDIO 从机时序U0TXD ActiveU0TXD Silent

受限 GPIO:

  • 被 PSRAM 占用不可使用:IO26
  • 仅输入:IO46

注意:IO19/IO20 同时承担 USB_D- / USB_D+ 与 ADC2 的复用,使用 USB 时不要把它们当作普通 GPIO/ADC 使用;完整排针表(J2/J3,共 40 余个引脚)见 ESP32-S2-Saola-1.rst。

4.3 ESP32-C3-DevKitM-1(低成本 RISC-V 入门首选)

  • 文档:docs/en/boards/ESP32-C3-DevKitM-1.rst
  • 核心:ESP32-C3(RISC-V 单核),搭载ESP32-C3-MINI-1模组
  • 定位:体积小、成本低、带 USB Serial/JTAG 的 Wi-Fi + BLE 5 方案,极其适合小型 IoT 节点与面包板原型。

规格要点:

  • 小型 2.4 GHz Wi-Fi(802.11b/g/n)与蓝牙 5 模组
  • RISC-V 单核微处理器
  • 模组内嵌 4 MB Flash;模组提供 15 个可用 GPIO
  • 外设:22 × 可编程 GPIO;3 × SPI;2 × UART;1 × I2C;1 × I2S;远程控制外设(2 发 2 收);LED PWM 控制器(最多 6 通道);全速 USB Serial/JTAG 控制器;通用 DMA 控制器 GDMA(3 发 3 收);1 × TWAI® 控制器(兼容 ISO 11898-1);2 × 12-bit SAR ADC(最多 6 通道);1 × 温度传感器;2 × 54-bit 通用定时器、3 × 看门狗定时器、1 × 52-bit 系统定时器
  • PCB 天线或外置天线连接器

Strapping 引脚(GPIO2/GPIO8/GPIO9 为 ESP32-C3FN4 芯片的启动配置引脚,系统复位时锁存电平作为启动位,直至下电):

GPIO默认状态功能上拉下拉
IO2N/A启动模式见数据手册见数据手册
IO9上拉启动模式SPI BootDownload Boot
IO8N/A启动模式Don't CareDownload Boot
IO8上拉启动期间日志打印开关见数据手册见数据手册

ESP32-C3-DevKitM-1 引脚布局

排针要点:J1 提供 3V3/5V/GND 电源与 IO0~IO10 等引脚;J3 提供 TX(GPIO21/U0TXD)、RX(GPIO20/U0RXD)、IO4~IO9(其中 IO8 板载 RGB LED、IO9 为启动配置脚)、IO18/IO19(USB_D- / USB_D+)等。完整表格见 ESP32-C3-DevKitM-1.rst。


五、第三方开发板与"通用板"模板

除了官方板卡,社区第三方厂商提供了海量选择。文档在 Third Party 一节中给出了两条重要约定:

  1. 板卡信息由厂商提供:官方文档只列出厂商提供的资料;如果你的常用板卡不在列表中,可以在官方 GitHub 仓库提交 issue 并在描述中直接提及/@ 厂商,推动厂商补充资料。
  2. 通用模板:文档提供了一个 generic.rst 模板,约定"每个板卡一个文件,或多个板卡共用一个文件,但不要在索引文件(boards.rst)里写板卡描述",以此保持文档结构整洁。

文档当前列出的第三方板卡包括:

  • LOLIN(Wemos):LOLIN D32、LOLIN D32 Pro(ESP32 核心,含电池管理、锂电池接口的经典板型)。
  • Generic Vendor / 通用板:对应 generic.rst 模板中的占位内容(规格、Header Block、引脚布局均为待填充区域,并同样以 datasheet.inc 作为数据手册资源入口)。

从本仓库的 boards.txt 可以看到,实际支持的板卡远不止文档列出的这几款——包括 AI Thinker ESP32-CAM(esp32cam)、ESP32-S3-Box(esp32s3box)、SparkFun ESP32 Thing 等数百个板卡定义,而每个板卡的引脚映射定义位于 variants 目录下对应的pins_arduino.h中(例如 variants/esp32/pins_arduino.h)。板卡列表是持续扩充的,选型时不必局限于官方文档列举的型号;但要注意,第三方板卡的支持质量取决于厂商维护情况,购买前仍建议按第三节的四点清单核对。


六、数据手册资源清单

官方文档为每个 SoC 家族统一维护了数据手册索引(见 docs/en/common/datasheet.inc,该文件被 boards.rst 与 generic.rst 共同 include):

  • ESP32、ESP32-C2、ESP32-C3、ESP32-C5、ESP32-C6、ESP32-C61、ESP32-H2、ESP32-P4、ESP32-S2、ESP32-S3 的官方 Datasheet 均可在该索引中获取;
  • 选型与引脚规划阶段,请以对应家族的数据手册为准(例如 VDD_SDIO 电压、SDIO 从机时序等细节都只在数据手册中完整给出);
  • 各开发板文档的 Resources 小节还会补充模组数据手册(如 ESP32-WROVER-E、ESP32-C3-MINI-1)与**原理图(Schematic)**下载入口,例如 ESP32-DevKitC-1.rst 中的 ESP32-DevKitC Schematic、ESP32-S2-Saola-1.rst 中的 ESP32-S2-Saola-1 原理图。

七、总结:三步完成你的板卡选型

结合官方文档与本仓库实现,推荐的选型路径可概括为:

  1. 先定 SoC 家族:是否需要蓝牙?是否需要 802.15.4(Thread/Zigbee/Matter,对应 C6/H2/C5)?是否需要 USB 原生外设(S2/S3)?是否需要最强算力(P4)?据此从第一节的家族表中圈定 1~2 个候选家族,同时确认其在 Arduino-ESP32 中的支持轨道(Stable/Development)。
  2. 再定模组:同家族内根据 Flash 容量、是否带 PSRAM、单核/双核选择模组(如 ESP32-WROOM 与 ESP32-WROVER)。
  3. 最后定开发板:官方板卡看第三节的三款文档化型号;第三方板卡按"内嵌 USB 转串口、面包板友好、开源硬件、厂商支持"四点清单核查,再对照 boards.txt 与 variants 目录确认该板卡在 Arduino-ESP32 中的引脚定义与板卡配置是否完整。

开发过程中,请始终将启动配置(Strapping)引脚受限 GPIO(Flash/PSRAM 占用、仅输入引脚)视为"禁区",优先使用各板卡文档中标记为自由 I/O 的引脚,即可避免绝大多数"烧录后无法启动""引脚无响应"类的低级踩坑。

【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

PLC新手入门实战指南:从梯形图到工业现场故障排查

1. 这不是“学PLC”而是“进工厂”的入场券:一个干了12年自动化现场的老工程师的真心话“PLC培训,新手最关心的7个问题”——这句话我每天在招聘群、技术论坛、甚至车间休息室里听不下十遍。不是学员问,就是HR转述,再不就是产线班…

作者头像 李华
网站建设 2026/9/13 14:34:16

P值与α的关系:显著性检验的底层逻辑与实操避坑指南

别急着从教科书目录开始啃。我在实际做数据分析这几年,发现“显著性检验”几乎是每个入门者绕不过去的第一道坎,而其中最让人头疼的,就是P值和α这两个符号。大家最常问的一句话是:“P值到底要小于多少才算显著?为什么…

作者头像 李华
网站建设 2026/9/13 14:34:02

PixPin截图工具:智能长截图与OCR技术解析

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

作者头像 李华
网站建设 2026/9/13 14:30:10

SQL窗口函数ROWS与RANGE区别详解:从原理到实战避坑指南

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

作者头像 李华
网站建设 2026/9/13 14:29:59

彩虹易支付源码解析:二次元UI+投诉工单+USDT充值的轻量级支付系统

简介:本资源为全开源的彩虹易支付平台最新升级版源码包,面向PHP开发者、支付系统二次开发人员及电商技术团队,聚焦解决生产环境中常见的BUG稳定性问题与用户投诉响应滞后痛点。压缩包共1566个文件,主体为548个PHP核心逻辑文件、42…

作者头像 李华