
ESP32-S3 和 C3 这两颗芯片在过去两年里几乎成了入门级 WiFi 开发板的两大支柱。打开淘宝搜索“ESP32 开发板”排在前面的永远是 S3 Mini、C3 Mini 这些巴掌大小的蓝色板子价格从十几块到三十几块不等长得还差不多接口也差不多很多朋友第一次买的时候根本分不清到底有什么区别。我之前在群里被问过太多次“S3 和 C3 到底买哪个”也见过有人买错了板子到货以后发现项目跑不起来只能重新下单再等几天。这篇博文就把这两块板子的底细彻底扒开从 PSRAM 和 USB 这两个最容易踩坑的点说起再给你一张可以对着核对下单的采购清单至少能帮你少走一次弯路。1. 选型之前先想清楚你的项目到底要什么1.1 芯片定位差异是根源很多人选板子只看引脚数量和价格忽略了芯片本身的定位差别。ESP32-C3 是乐鑫在 2020 年底发布的 RISC-V 单核芯片主打低功耗、低成本、快速联网而 ESP32-S3 是 2021 年初发布的 Xtensa 双核芯片定位是高算力、AI 加速、多媒体处理。两者的关系有点像家用代步车和带涡轮的运动车都能把你送到目的地但跑法和能背的东西完全不一样。选型的第一件事不是比参数表而是想清楚你的程序要跑什么。如果项目就是一个传感器采集 WiFi 上传C3 足够了省下来的钱和功耗能买好几杯奶茶如果项目要接摄像头、要跑人脸识别、要做复杂的 UI 动画那 C3 跑到冒烟也带不动S3 才是正解。这里有个特别容易犯的错有人觉得“我用 Arduino 写代码芯片是啥无所谓API 都一样”。这个想法只对了一半。Arduino 框架确实抹平了不少差异但内存大小、外设数量、USB 能力这些硬件层面的差距不是软件框架能弥补的。你写的代码在 C3 上编译通过不代表它能在 4MB Flash 里跑起来更不代表内存不会爆。1.2 三类典型项目的配置画像我自己平时接触的项目大致能分成三类你可以对照一下自己属于哪一类一类是纯传感器网关类项目读一个温湿度传感器、一个 OLED 屏、通过 MQTT 上报偶尔做个 OTA。这类项目对性能要求低但对功耗和稳定性要求高。C3 Mini 配 4MB Flash 完全够用实测下来跑 ESPHome 或者 Tasmota 都很稳空闲时电流能压到几十微安级别。另一类是屏幕交互类项目用 1.8 寸到 3.5 寸的 TFT 屏或者用 LVGL 做 UI。这就涉及帧缓冲的问题。一张 240x320 的 RGB565 屏一帧数据是 240×320×2约 150KB。C3 内部只有 400KB SRAM扣掉系统占用后可用的大概 300KB 出头做简单 UI 还能撑一撑但如果图多、动画多、字体大内存会非常紧张。S3 配合 PSRAM 才是这类项目的舒适区我在实际项目中用 S3 8MB PSRAM 跑 LVGL一帧 320x480 的 UI 动画也很流畅。第三类是 USB 相关项目做 USB 键盘、鼠标、游戏手柄或者做一个 USB 转串口的工具。这类项目对 USB 外设有硬性要求选型逻辑完全不同。细节我放到第二章详细说这里先提一句如果你要做的是 USB Host 方向——也就是板子去读取 U 盘、读取鼠标——S3 的 USB-OTG 接口是唯一合理选择C3 的原生 USB 只支持从机模式没法直接插 U 盘。1.3 我踩过的选型坑说个我自己的反面教材。早期我做一个桌面小摆件项目需求很简单一块小屏幕显示天气两个按键切换页面WiFi 同步数据。我当时想当然地选了 C3因为便宜、省电结果做到第二版想加一个 GIF 动画壁纸时内存直接爆了。后来被迫换成 S3重新改了 PCB 和外壳才解决问题。整个项目周期多花了两周。这个教训告诉我选型时要往前看一步想想你这个项目的第二版、第三版会不会有新功能。硬件选型不像写代码改一行就行。板子定了PCB、外壳、电源方案都跟着定后面想升级代价极大。所以我在帮你列采购单的时候会尽量给 S3 留一些余地。2. S3 和 C3 的核心差异不止是 PSRAM2.1 PSRAM 到底解决什么问题PSRAM 全称是 Pseudo Static RAM伪静态随机存储器。很多新手看到这个名字就懵了其实你可以把它理解成“外挂内存条”。芯片内部的内存是焊死在硅片上的大小固定PSRAM 是额外挂在芯片外面的内存颗粒通过 SPI 接口和芯片通信虽然速度比内部内存慢一些但容量可以做到很大。S3 最典型的配置是内置 2MB PSRAM 或者外挂 8MB PSRAM 的版本。C3 没有 PSRAM 选项这是两颗芯片在硬件规格上最硬的一道分界线。为什么这道分界线重要因为跑大模型、跑摄像头、跑 UI 框架本质上都需要大块内存来存中间数据。没有 PSRAM你的程序就像一个人只有一张办公桌文件一大就必须不停地往柜子里存取有了 PSRAM等于多了一张大桌子虽然还是不如内部内存快但至少文件摊得开。乐鑫的 ESP-IDF 里有个配置项叫 CONFIG_SPIRAM开启之后malloc 大块内存时会自动落到 PSRAM 上。但在 Arduino 和 ESPHome 环境下PSRAM 的使用方式略有不同Arduino 里可以用 MALLOC_CAP_SPIRAM 或者 ps_malloc() 分配ESPHome 里则有一些组件会自动优先使用 PSRAM比如显示缓冲。需要说明的是对于新手而言PSRAM 最直观的好处就是同样的代码在 C3 上编译失败报“memory allocation failed”在 S3 上就能跑。2.2 USB 能力的三种形态千万别搞混从热词里可以看到很多人搜 USB 各种相关操作说明 USB 确实是实际使用中的一个高频痛点。ESP32 系列的 USB 能力有三层很多人没有分清。第一层是 USB-Serial-JTAG这是 C3 和 S3 都有的原生 USB 外设。它把 USB 引脚直接接到芯片内部不需要外部的 USB 转串口芯片插上数据线就能识别出一个串口。这个串口除了可以用来烧录程序还带 JTAG 调试功能可以直接用开源的调试器在线调试省掉了买 J-Link 和 USB 转 TTL 的钱。第二层是 USB-OTG这个只有 S3 有。USB-OTG 是一个完整的 USB 控制器支持 Host 和 Device 双模式。在 Device 模式下S3 可以模拟成 USB 键盘、鼠标、MIDI 设备、U 盘在 Host 模式下S3 可以接 U 盘、USB 摄像头、USB 键盘等外设。但这里有个容易踩的坑S3 的 USB-OTG 引脚默认只是 USB 信号线要做 Host 的话还需要在 D/D- 上接一个 USB PHY 芯片比如 USB3300或者用内置的全速 PHY——实际上 S3 内置了全速 USB PHY所以可以直接在芯片上跑 Host 模式但需要注意的是供电和热插拔保护因为 USB Host 模式下要给外部设备提供 5V 电源这个电源管理需要自己处理。第三层是外部 USB-UART 芯片比如开发板上常见的 CP2102、CH340、FT232 等。很多板子为了兼容性和稳定性会额外焊一个 USB 转串口芯片这样 USB 口主要给串口用原生 USB 引脚就解放出来复用成 GPIO。C3 Mini 和 S3 Mini 这类小板子在设计上通常有两种做法一种是用原生 USB-Serial-JTAG焊盘小、成本低另一种是外加 CH340连接更稳定。买板子时要看清楚商品描述的“USB 方式”这直接影响你烧录和串口调试的体验。2.3 引脚、Flash、功耗和外设的全面对比除了 PSRAM 和 USB还有几个参数直接影响实际项目。Flash 容量方面C3 Mini 大多是 4MB Flash部分版本到 8MB、16MB。S3 Mini 常见的是 8MB、16MB 甚至 32MB。Flash 决定了固件体积上限如果要做 OTA需要留两份固件的空间4MB 其实有点紧张如果要放网页资源、字库、图片那 8MB 以上是必要的。网上经常搜到的“ESP32-C3 AT 固件下载”就是乐鑫官方提供的 AT 指令固件对 AT 用户来说Flash 版本选型要注意不同 AT 版本对 Flash 大小有要求。核心数和频率方面C3 是单核 RISC-V最高 160MHzS3 是双核 Xtensa LX7最高 240MHz而且带向量指令加速。如果你熟悉 ESP32 和 ESP32-S2S3 的 LX7 核心其实就是升级版的“ESP32 双核体验”跑多任务时双核优势非常明显。举个实际例子一个任务抓取摄像头数据另一个任务做 WiFi 传输在双核上可以做到两个核心各跑一个任务互不干扰。外设数量上S3 明显更丰富有 45 个可编程 GPIO、2 个 I2C、3 个 SPI、5 个 UART、14 个触摸通道等。C3 有 22 个 GPIO外设数量少一些但麻雀虽小五脏俱全I2C、SPI、UART、PWM、ADC 都有。如果你的项目同时要接多块传感器、多个串口设备C3 的引脚可能不够用这时候别急着说“我可以用 I2C 挂一堆设备”I2C 地址冲突和设备间的信号干扰问题会让你焦头烂额。功耗方面C3 的优势更大。C3 在 Modem-sleep 模式下功耗很低Deep-sleep 模式配上 RTC 唤醒电池供电的小设备能用很久。S3 的双核和射频模块功耗更高电池供电的便携项目要多算一笔能耗账。我的经验是能插电的项目优先选 S3性能冗余让人安心必须电池供电的低功耗场景选 C3 更合适。2.4 一张表格看完核心差异对比项ESP32-C3 MiniESP32-S3 Mini核心架构单核 RISC-V 160MHz双核 Xtensa LX7 240MHzSRAM约 400KB约 512KBPSRAM无可选 2MB / 8MBFlash常见 4MB常见 8MB / 16MB原生 USBUSB-Serial-JTAGUSB-Serial-JTAG USB-OTGGPIO 数量约 22 个约 45 个是否支持 USB Host不支持支持需外接 PHY 或处理供电适合场景传感器、低功耗、简单联网UI、摄像头、AI、USB 外设、复杂交互典型价格范围10-20 元20-40 元这张表只是入门参考具体到每个开发板型号还有差异。下面进入选购实操环节。3. 买之前必须确认的 5 个问题3.1 板型和引脚兼容性别被“Mini”字样迷惑市面上几乎所有 ESP32-C3 Mini 和 S3 Mini 都叫“Mini”但引脚排列并不完全一致。有的 S3 Mini 是双排排针、一边 18 针有的 C3 Mini 是异形切角引脚定义和官方 DevKitC 接近但不完全相同。买之前一定要去商品详情页看引脚图或者去官方仓库下载板子的原理图和 dimensions 文件。我见过不少人买回来发现引脚不对然后强行飞线这在小项目里虽然能凑合但可靠性很差。做原型验证阶段无所谓一旦要批量或者做外壳引脚不一致就是灾难。建议选板子时优先选那些有完整文档和原理图开源的型号比如合宙的 ESP32-C3/S3 系列、WeAct 的 Mini 系列它们的引脚定义和官方示例都对得上。3.2 USB 口类型和烧录方式的兼容性USB 口是 Type-C 还是 Micro-B别觉得这在 2025 年还是个问题但确实有不少库存板还在用 Micro-B。如果你手头只有 Type-C 数据线买 Micro-B 就得额外备线。这里特别提示买 Type-C 的板子数据线要买支持数据传输的不是所有 Type-C 线都能传数据很多手机附赠的线是纯充电线。我在热词里看到有人搜“普通 USB 数据线和 OTG 线的区别”这里点一下USB 数据线用于 PC 和板子通信OTG 线用于手机外接 U 盘、键鼠等设备两者不能混用。开发板烧录用的是数据线OTG 线通常用不上。烧录方式上C3 Mini 和 S3 Mini 一般都支持两种方式。一种是通过板载 USB 转串口芯片另一种是直接使用原生 USB-Serial-JTAG。如果你用原生 USB需要确认你的电脑操作系统能正确识别出串口。Windows 下一般免驱或自动装驱动Linux 下通常也不用管macOS 下偶尔有权限问题。我在热词里看到有人搜“usb 转 ttl 串口还不显示”这种情况八成是驱动没装好或者串口被其他软件占用后面第四章我会给排查思路。3.3 供电和电源管理USB 供电的隐藏坑开发板一般通过 USB 5V 供电板载 LDO 降压到 3.3V。但有些板子的 LDO 最大输出电流只有 500mA接上 WiFi 大功率发射、屏幕背光、电机驱动这些负载时电压会瞬间跌落导致系统重启。特别是 S3 的峰值电流比 C3 大很多如果你要用 S3 跑 WiFi 屏幕供电余量一定要留够。如果你准备用锂电池供电就要关注板子是否带锂电池充电电路。很多 S3 Mini 和 C3 Mini 的“Pro”版本会带电池接口和充电芯片但普通版本没有。选电池方案时如果对充电管理不熟我建议直接用带充电电路的开发板别自己搭充电电路锂电池充电不处理好有安全隐患。另外注意 3.3V 引脚和 5V 引脚的区别。很多新手把 3.3V 和 5V 搞混接了 5V 到 3.3V 引脚板子当场烧掉。在接线之前看一眼引脚丝印这个习惯能帮你省下一大笔“学费”。3.4 天线选择PCB 天线还是 IPEX 外接绝大多数 Mini 板都是 PCB 天线也就是天线直接印在电路板上好处是便宜、不用额外接线、一体成型坏处是天线周围不能有金属遮挡否则信号衰减明显。如果你要装进金属外壳或者天线位置被电池挡到就需要选带 IPEX 座的版本外接一根天线引到外壳外面。这个点看似细节但实际项目里影响非常大。我做过一个温湿度计刚开始 C3 用 PCB 天线放在金属支架旁边WiFi 信号直接掉到 -80dBm 以下后来改了天线位置才好。所以选型时如果知道外壳是金属的直接选 IPEX 版本。3.5 购买渠道和版本识别避开假货和“阉割版”ESP32 系列芯片市面上有假货开发板领域虽然没有芯片假货那么猖獗但存在“阉割版”比如把 S3 的 PSRAM 版本减配成无 PSRAM 版本还按原价卖或者用 ESP32-S3 的早期版本替代新版导致某些功能缺失。买的时候一定要看商品标题和参数里有没有明确写“8MB PSRAM”“16MB Flash”等字样并问清楚客服。认准几个常见可靠渠道乐鑫官方淘宝店、合宙官方店、WeAct 官方店、以及一些知名的海外分销商如 Mouser、Digi-Key 的国内代理。这几个渠道虽然不能保证 100% 无假货但售后和品质有保障。如果在第三方店铺买一定要看评价里有没有人反馈“芯片丝印不对”“PSRAM 检测不到”之类的字眼。4. 实操烧录、串口和驱动那点事4.1 原生 USB 和 USB 转 TTL 的区别很多人在用开发板时最容易卡住的就是“插上 USB 后电脑不识别设备”。这要先搞清楚你的板子到底走的是哪条 USB 通路。如果你的板子用的是原生 USB-Serial-JTAG插上电脑后设备管理器里会出现一个 COM 口同时会多出一个 USB 调试设备通常显示为 Espressif USB JTAG/flash debug unit。这种情况下烧录不需要按住 BOOT 键非常方便。但有个坑原生 USB-Serial-JTAG 在某些操作系统下可能没有自动安装驱动Windows 有时能识别但设备管理器里有感叹号需要手动更新驱动。如果你的板子用的是外部 USB 转串口芯片CH340、CP2102、FT232 等插上后设备管理器会出现对应芯片的 COM 口。CH340 在 Windows 下要装驱动CP2102 一般免驱FT232 需要从 FTDI 官网下载驱动。网上很多人搜“FT231x USB UART 驱动”“FT232R USB UART 驱动”说的就是这类问题。如果你发现 COM 口不出现先用“驱动精灵”或者设备管理器里的“更新驱动”试试再不行就去芯片厂商官网下原厂驱动。这里插一句我买 USB 转 TTL 模块时发现某些十几块钱的“CH340 模块”用的是打磨芯片冒充 CH340装驱动后识别成 USB-Serial但一跑就断线这种模块害人不浅。4.2 串口不显示的排查套路如果你插上 USB电脑毫无反应别急着退货按这个顺序排查换一根确认能传数据的数据线很多线只能充电不能传数据换一个 USB 口台式机优先插主板后面的口前面板的 USB 口有时供电和信号都有问题在设备管理器里看有没有未知设备、感叹号设备如果有右键更新驱动如果你用虚拟机注意让虚拟机把 USB 设备直通到宿主机VMware 里要用“连接 USB 设备”而不是“共享 USB 设备”热词里的“vmware usb arbitration service”就是管这个的如果以上都不行用万用表量一下板子的 5V 和 3.3V判断是不是板子根本没上电。这套流程我实测过很多次80% 的问题都出在数据线或驱动上。只有很少数是板子本身的硬件问题。4.3 USB 抓包排查的实际用途USB 协议问题虽然对大部分应用层开发者不常见但一旦你开始做 USB 扩展抓包工具就很有用。热词里出现了“USB 抓包”“Teledyne LeCroy USB Protocol Suite”“CTF 中 USB 流量分析脚本”说明不少人已经在研究这个方向。简单说USB 抓包有两种方式硬件抓包器比如 LeCroy、Total Phase 的 Beagle USB 分析仪和软件层面的协议分析比如 Wireshark 抓 USB 流量、USBPcap 驱动在 Windows 下抓包。对普通开发者来说Wireshark USBPcap 是最低门槛的方案。在 Windows 下安装 USBPcapWireshark 里选择 USB 接口就能看到设备枚举、控制传输、批量传输的过程。如果你在写 USB Host 代码时发现设备无法枚举抓包能看到是 SET_ADDRESS 请求失败还是配置请求失败定位效率高的多。4.4 常见烧录和调试报错速查报错现象可能原因解决方法A fatal error occurred: Failed to connect to ESP32: No serial data received串口被占用或 Boot 模式不对按住 BOOT 键再插 USB或按一下 RST 键关闭串口监视器软件Chip is ESP32-S3 (revision v0.1) … 无法进入下载模式USB-Serial-JTAG 和供电冲突检查数据线是否传数据按住 BOOT 再按 RST直到出现“Downloading… ”Waiting for the USB handle with VID: 0x5ac, PID: 0x1227烧录器在寻找特定 VID/PID 的 USB 设备检查线缆和插口如果用了 USB Hub换直连口串口显示“Auto-detected: ESP32-C3”但烧录完无法启动Flash 烧录地址错误检查 esptool 参数按官方板型配置 Flash 地址不要手动改 offsetOTA 后设备变砖OTA 分区不够或固件签名问题用 USB 下载模式重新烧写确认分区表配置5. 可直接复制的采购单三套方案加一张核对表5.1 三套典型配置方案根据前面理清的需求我给出三套可以直接抄的采购方案。每个方案都列出核心板、配件和理由价格是参考价实际会浮动。第一套是入门尝鲜方案适合第一次接触 ESP32、想做简单智能家居节点的新手。核心板选合宙 ESP32-C3 Mini 4MB 版10 元左右配件配一根 Type-C 数据线、一个 CH340 USB 转 TTL 模块做备用有些系统对原生 USB 兼容不好、DHT11 温湿度传感器和一块 0.96 寸 OLED。这套总共 20 到 30 元跑 ESPHome、Tasmota、简单的 Arduino 程序都够用。第二套是屏幕交互方案适合做桌面摆件、小型仪表盘、带 UI 的项目。核心板选 WeAct ESP32-S3 Mini 8MB Flash 8MB PSRAM 版本30 元左右配件配一块 1.8 寸或 1.54 寸 TFT 屏ST7735 驱动10 元内、一个 3.7V 锂电池模块如果要移动使用、一个带 IPEX 座的 S3 版本如果机箱是金属的。这套预算在 50 到 80 元做 LVGL UI 和摄像头类项目都比较从容。第三套是 USB 外设方案适合做 USB 键盘鼠标、游戏手柄、U 盘读取器等项目。核心板选 ESP32-S3 Mini 8MB PSRAM 版30 元左右配件按需选 Type-C 公口转接板、USB A 母口转接板做 Host 时需要、以及一个 5V 升压模块如果用电电池给 USB 设备供电。这里需要提醒做 USB Host 项目时S3 的原生 USB 信号可以直接连 USB A 母口但供电必须从板子的 5V 引脚或者外部电源单独供给S3 板载 LDO 的电流通常不够给 U 盘这类设备用。5.2 采购核对表如果你想自己组合配置我建议下单前列一张核对表对着查完再付款芯片型号明确是 C3 还是 S3不要只看标题里“Mini”两个字Flash 容量4MB 还是 8MB/16MB确认符合固件计划PSRAM 有无S3 要有 PSRAM 就选带“8MB PSRAM”字样的版本USB 接口类型Type-C 还是 Micro-B确认自己有对应线材USB 通路原生 USB-Serial-JTAG 还是外挂 CH340/CP2102看自己系统兼容情况天线形式PCB 天线还是 IPEX 外接确认外壳材质板载充电是否需要锂电池充电功能按项目决定引脚丝印和文档确认店铺提供引脚图/原理图避免回来后对着丝印猜供应商优先官方店和口碑店别只看最低价那几家。5.3 总预算建议如果你只买一块板子预算 15 到 20 元就能入门级玩 C330 到 40 元就能买到带 PSRAM 的 S3。如果加上传感器、屏幕、线材、电源整套入门方案的预算建议控制在 50 元以内进阶方案 100 元以内。买开发板并不贵贵的是后面踩坑花的时间。所以如果预算允许我的建议是直接把板子买好一点的比如 S3 直接选带 PSRAM 的版本别为了省 5 块钱在关键时刻卡壳。6. 我的体会和一个实用小技巧开发板选型这件事其实没有一个万能答案。C3 和 S3 的差异不是“谁比谁强”而是“谁更适合你的场景”。低功耗传感器项目选 C3 是明智屏幕交互项目选 S3 是正常USB Host 项目只能选 S3这是硬件规格决定的。买之前花半小时想清楚项目需求比买回来再折腾一个月划算的多。最后再分享一个小技巧。买到的板子到手后先别急着焊排针、接传感器第一步是插上 USB 用 Arduino 或者 esptool 跑一个 Blink 例程确认板子能烧录、能启动、串口能输出。这一步能排除 90% 的硬件故障也能让你在项目刚开始的时候就熟悉烧录流程和环境配置。等 Blink 跑起来了再开始接外设也不迟。我见过太多人一上来就接一堆东西结果焊完之后发现是板子本身有问题排查起来极其痛苦。如果你准备入坑 ESP32 系列这篇采购单可以作为第一份参考。选定了板子之后后面才有更多时间花在真正有趣的事情上。