上个星期整理项目柜,翻出几块几乎一模一样的小板子,Type-C口、邮票孔、2.54mm排针,要不是我当初用记号笔在背面写了型号,光看正面真分不清哪块是ESP32-S3 Mini、哪块是ESP32-C3 Mini。这种“看着像、价格差一倍、参数却不写在脸上”的尴尬,几乎每个刚接触ESP32的人都会碰到。
这篇文章只聊一件事:这两块小板子到底怎么买。我会把芯片差异、PSRAM、USB这三个最影响决策的点讲透,最后给你一张可以直接对着电商页面核对的采购单,也把手头板子到货后第一轮验证的方法和常见坑一起写进来。适合正在纠结“选S3 Mini还是C3 Mini”的人,也适合已经买了板子但被识别和下载问题折腾到怀疑人生的朋友。
1. 先搞懂芯片差异:S3和C3不是同一种东西
两块板子名字里都带“ESP32”,但内部完全是两个物种。别被商家页面上那几行“支持WiFi蓝牙”的文案带偏,S3和C3的差异,基本决定了你的项目能跑成什么样。
1.1 内核、主频与性能差距的实际体感
ESP32-S3用的是双核Xtensa LX7,主频240MHz;ESP32-C3用的是单核RISC-V,主频160MHz。数字上看起来只差一点,实际用起来并不是“快一倍”和“慢一倍”的关系,而是并发处理能力完全不一样。
WiFi协议栈和BLE协议栈本身就要吃CPU资源,再加上你的业务代码、任务调度、中断处理,单核的C3会经常处于“手忙脚乱”的状态。S3至少可以一个核跑协议栈、一个核跑业务逻辑,哪怕业务再重,队友也不会被踢下线。做个不严谨但很好懂的类比:S3是双人办公室,C3是单人办公室,单人办公室不是不能用,而是同时来三个人的时候得排队。
这个差距在轻量场景下几乎无感。比如一个温度传感器每10秒上报一次MQTT、控制一个继电器、接收几个蓝牙广播包,C3完全够用,就算把CPU跑满也体验不到瓶颈。但如果你要做本地TLS加密通信、跑HTTP Server、边处理数据边维持连接,S3会从容很多。
还有个容易被忽略的点是工具链。S3用的是Xtensa工具链,C3用的是RISC-V工具链,ESP-IDF和Arduino已经帮你封装好了,正常开发不需要关心。但第三方的库不一定都做了双架构适配,有些带向量指令优化的库是S3专属的,比如部分音频处理、AI推理库。买板子之前最好看一下你要用的库是否支持对应芯片,省得到手才发现缺胳膊少腿。
1.2 外设与引脚:够用和富余的边界在哪
外设资源差距比内核还明显。S3有45个可编程GPIO,带有触摸传感器、多路SPI/I2C/UART/I2S,更重要的是有LCD接口和摄像头接口;C3只有22个可编程GPIO,没有触摸,也没有并行屏和摄像头接口。如果你准备接一块SPI小屏、几个传感器、两三个按键,C3勉强够用;想上并口RGB屏、OV2640摄像头之类的外设,S3几乎是必经之路。
ADC也是个容易看走眼的参数。S3有两路SAR ADC共20个通道,C3同样有两路ADC但只有6个通道。对于单纯采集几个模拟量来说差别不大,但做多路模拟采样、电池电压检测加上其他传感器同时接入时,S3就更宽裕。顺便提醒一句,这两颗芯片都不带经典蓝牙,只支持BLE 5.0,别想着像老ESP32那样去连蓝牙音箱、蓝牙手柄,很多人买完才发现这个坑。
我整理了一张对比表,方便你直接存下来:
| 项目 | ESP32-S3 | ESP32-C3 |
|---|---|---|
| 内核 | 双核 Xtensa LX7,240MHz | 单核 RISC-V,160MHz |
| SRAM | 约512KB | 约400KB |
| 外接PSRAM | 支持,常见2MB/8MB | 不支持 |
| USB | 全速USB OTG,可做Host/Device | USB Serial/JTAG,仅Device |
| 可编程GPIO | 45个 | 22个 |
| ADC | 2路SAR,20通道 | 2路SAR,6通道 |
| 触摸传感器 | 支持 | 不支持 |
| 经典蓝牙 | 不支持 | 不支持 |
| 典型定位 | 带屏、摄像头、音频、USB Host | 低成本IoT传感器节点 |
这张表解决的是方向问题。接下来要解决的是很多人买完才后悔的PSRAM问题。
2. PSRAM才是真正的分水岭:选错直接限死项目形态
如果说内核差异只是“快慢”问题,那PSRAM差异就是“能不能做”的问题。很多项目不是被主频卡死的,而是被内存卡死的。
2.1 PSRAM是什么:内存条、U盘和文件柜的比喻
先给刚入门的朋友说清楚:PSRAM全称Pseudo SRAM,伪静态随机存储器。你可以把它理解成外挂在主控旁边的一条“内存条”,芯片可以通过SPI接口快速访问它,用来存放变量、缓冲区、界面数据等等。
Flash、SRAM、PSRAM三者的关系,我用三个东西类比:Flash是U盘,容量大、断电不丢数据,用来存固件和文件;SRAM是桌面,CPU干活时把东西摊在桌面上,速度快但位置有限;PSRAM就是旁边加了一张折叠桌,桌面不够用的时候把东西摊到折叠桌上,速度比真正的桌面慢一些,但容量大得多。
S3支持外接PSRAM,常见模组带2MB或8MB,部分型号不带;C3硬件上就不支持PSRAM,这是选型时最硬的一条分界线。程序里malloc一大块内存、图像缓冲、音频缓冲、LVGL界面缓冲,这些在C3上经常是“想都别想”,在带PSRAM的S3上则是“随便造”。
2.2 有没有PSRAM,项目形态完全不一样
拿最常见的三个场景举例。
第一个场景是LVGL图形界面。一块320x240的屏幕,RGB565格式的帧缓冲大约需要150KB,这还只是帧缓冲,没算控件对象、图片解码缓存、字体缓存。C3那点内存光是开几个界面就吃不消,更别说流畅滑动。S3带8MB PSRAM之后,开双缓冲、预加载图片都变得很轻松,界面流畅度完全是两个级别。
第二个场景是摄像头和图像识别。S3接摄像头时,拍一张高分辨率照片需要一大块连续内存做帧缓冲。没有PSRAM的S3只能拍低分辨率小图,带PSRAM的版本才能撑起正经的图像处理流程。C3根本没有这条产品线,摄像头项目可以直接排除C3。
第三个场景是音频和语音。播放WAV、解码MP3、做语音唤醒,都需要大内存缓冲。PSRAM在这里几乎是刚需,没有它,很多音频库连初始化都过不去。
反面场景也很明确。如果只是做传感器数据采集、按钮控制、继电器开关、BLE Beacon广播,这类项目占用内存很小,C3完全够用,甚至无PSRAM的S3版本也一样能跑。所以买不买带PSRAM的S3,取决于项目里有没有“显示、图像、音频”这三样中的任何一样。有,建议直接上8MB PSRAM版本;没有,省下预算买C3反而更理性。
2.3 怎么确认手里的S3到底带不带PSRAM
市面上S3 Mini版本很多,最靠谱的判断方法是看模组丝印。乐鑫模组型号命名有规律:ESP32-S3-WROOM-1-N8R8里,N后面的数字是Flash容量,R后面的数字是PSRAM容量,没有R就是没有PSRAM。所以N8R8就是8MB Flash加8MB PSRAM,N8只有8MB Flash没有PSRAM,N4R2则是4MB Flash加2MB PSRAM。
如果板子上的模组丝印被外壳挡住或者商家没标清楚,到手后可以插电脑上用esptool读。命令行执行esptool的flash_id命令能读出Flash信息,不过PSRAM信息不会直接显示在标准输出里,更直接的办法是跑一段ESP-IDF或Arduino的测试代码,用heap_caps_get_free_size(MALLOC_CAP_SPIRAM)打印空闲PSRAM大小,能打印出几百KB到几MB,说明PSRAM工作正常;打印0或者报错,就是没有PSRAM或没配置好。
这里提醒一句:市面上低价S3板存在虚标PSRAM的可能,尤其是那些“8MB PSRAM卖到白菜价”的杂牌板。收货后建议先跑一次内存自测,别等到画界面画到一半才发现内存不够,那真的会想把板子砸了。
3. USB口里的采购学问:原生USB、串口芯片与驱动
USB口是另一个容易被低估的采购变量。很多人的第一次崩溃不是写代码,而是板子插上电脑毫无反应,或者电脑上出现一个黄色感叹号。
3.1 同样是USB,C3和S3的控制器根本不是一回事
先泼一盆冷水:S3和C3的名字里都有USB,但能力差很多。S3内置的是全速USB OTG控制器,速率12Mbps,也就是USB 1.1全速级别,它可以做Device,也可以做Host,能插U盘、接USB键盘鼠标、做USB MIDI设备。C3内置的是USB Serial/JTAG控制器,只能做Device,主要用途是下载程序、输出日志、JTAG调试,插U盘这类Host功能想都不用想。
这个区别对采购的影响很直接:如果你打算让板子读取U盘里的文件、或者当一个USB HID键盘去控制电脑,只能选S3;如果你只是想让电脑识别出一个串口用来烧录,那C3的原生USB也够用。
还有一点要搞清楚,这两颗芯片的USB都是全速USB,不是USB 2.0高速USB,传输速度大概在1MB/s出头。下载固件还好,大文件传输别指望它能有多快。
3.2 认识开发板上的USB转串口链路
拿到一块开发板,先搞清楚它上面的Type-C口是怎么连到芯片的,这一点能避免后面一堆麻烦。市面上Mini板大致分两种方案。
第一种是原生USB直连方案。Type-C口的D+/D-直接连到主控芯片的USB引脚上,电脑上会识别出“ESP32-S3”或“USB JTAG/serial debug unit”。这方案省了一颗USB转串口芯片,成本低,但下载方式会变:很多时候需要按住BOOT键再插线或复位,才能进入下载模式。C3 SuperMini大多是这个方案,一部分S3 Mini也是。
第二种是USB转串口芯片方案。Type-C口先接一颗CH340、CP2102或者CH343,再由这颗芯片的TXD/RXD连到主控的UART0引脚,同时用DTR/RTS信号控制EN和IO0,实现“插上就能下载、不用手动按BOOT”。老款ESP32 DevKit基本都是这方案,不少S3 Mini也这么做。
怎么快速判断?看板子背面的芯片丝印,能找到CH340或CP2102字样就是转串口方案;找不到、电脑识别出的名字是“ESP32-S3”,那就是原生USB方案。两种方案没有绝对优劣,但新手第一次玩,带转串口芯片的板子通常更友好,因为串口助手下拉菜单里选个COM口就能用,踩坑少。
3.3 插上电脑没反应:先看VID/PID再谈驱动
USB设备识别问题,十有八九是驱动不对,而排查驱动最快的方法不是去下载乱七八糟的“驱动精灵”,而是看设备管理器里的硬件ID。右键设备、属性、详细信息、硬件ID,看到VID一栏就能判断出芯片方案。
常用的几组VID如下:
| 芯片/方案 | VID | 对应驱动来源 |
|---|---|---|
| CH340/CH341 | 1A86 | 沁恒官网驱动 |
| CP210x | 10C4 | Silicon Labs VCP驱动 |
| FT231X/FT232 | 0403 | FTDI VCP驱动 |
| ESP32-S3/C3原生USB | 303A | Windows 10/11一般免驱 |
CH340的驱动坑最多,Windows 11下用老版本驱动经常会出现“USB Serial”消失的问题,认准沁恒官网的新版驱动,下载安装后重新插拔。CP210x和FTDI相对省心,但FTDI在Windows更新后偶尔会有驱动签名问题,遇到感叹号就卸载设备再重新指定驱动目录。原生USB设备在Win10/11下系统自带CDC驱动,一般直接出现COM口,但Win7这种老系统就可能要手动装驱动。
还有种很常见的情况:板子插上去只亮灯、电脑完全没有反应。先别急着怪驱动,检查一下你手里那根Type-C线是不是“只充电线”。很多廉价线材为了省成本只接了VCC和GND,没有数据线芯,遇到这种线,再怎么折腾驱动都没用。换一根确定能传数据的线,往往一秒解决问题。
3.4 数据线、OTG线和USB Host的接法
热词里经常有人搜“普通USB数据线和OTG线有什么区别”,这块确实很容易买错。普通USB数据线通常是Type-C转USB-A公头,一端插板子,一端插电脑,用来供电和通信;OTG线是Type-C公头转USB-A母口,它的作用是把主控变成本地Host,让主控可以插U盘、USB键盘、USB鼠标。
如果你用的是S3,并且想让板子直接读U盘,你需要的是“Type-C公头转USB-A母口”这种转接线,而不是普通数据线。买的时候注意方向,插到S3那头是Type-C公头,外面露出来的是一个USB-A母口,一眼就能看出来。C3因为不支持USB Host,这根线买了也没用。
用S3做Host时还有两个实用提醒:一是供电要跟上,板子本身靠USB供电的电流上限不高,插U盘或无线键鼠接收器之后可能出现供电不足,建议用外部5V/1A以上电源,必要的时候加一个USB Hub;二是共地问题,如果外接的设备单独供电,一定要和开发板共地,否则USB枚举会各种奇怪失败。
4. 一张可核对的采购单:板型、丝印、版本与关键参数
前面说的都是原理,现在进入真正的“怎么买”环节。电商页面上的图片和文案鱼龙混杂,有的写着S3实发C3,有的标注“Mini”其实是普通开发板,所以必须学会自己核对关键参数。
4.1 看外观认板型:C3 Mini和S3 Mini怎么快速区别
C3 SuperMini这类板子通常做得非常小,大概22x18mm的尺寸,板载陶瓷天线或PCB天线,Type-C口,常见搭配4MB Flash,LED一般只有一颗。它的引脚也少,一般引出十几个GPIO,够用但不算富余。
S3 Mini尺寸会略大一些,因为芯片本身更大、引脚更多。常见的S3 Mini板载8MB Flash加8MB PSRAM,有些版本带RGB LED,有些只带普通电源指示灯。最直接的分辨方法还是看丝印:芯片上印着ESP32-C3就是C3,印着ESP32-S3就是S3;模组丝印写着ESP32-S3-WROOM-1-N8R8则必然带PSRAM。
还有个小技巧:用放大镜看板子背面的电路复杂程度。C3板子元件稀疏,S3板子因为内存颗粒、Flash颗粒以及更多去耦电容的存在,背面明显更“拥挤”。虽然这个判断不严格,但用来初筛很有效。
4.2 采购前必须核对的七个参数
不管你是在哪个电商平台买,下单前对着商品详情页逐项核对下面七个参数,能规避绝大多数坑。
| 核对项 | 具体内容 | 备注 |
|---|---|---|
| 主控型号 | ESP32-S3还是ESP32-C3 | 芯片丝印直接看 |
| Flash容量 | 4MB、8MB、16MB | 模组型号N后面的数字 |
| PSRAM容量 | 无、2MB、8MB | 模组型号R后面的数字,没有R就是无 |
| USB接口类型 | Type-C还是Micro USB | 建议选Type-C |
| 板载串口芯片 | CH340/CP2102/无 | 影响驱动和下载方式 |
| 板载按键 | RST和BOOT是否齐全 | 原生USB方案尤其需要BOOT键 |
| 排针是否焊接 | 已焊/未焊/排母 | 新手建议选已焊版本 |
除了这七项,还有两个容易被忽略的细节。第一,看引脚丝印:好的板子正面会标GPIO编号、3V3、5V、GND、TX、RX等文字,劣质板子丝印不全甚至印错,到手后接错线烧外设就晚了。第二,看清天线:C3 SuperMini常见陶瓷天线,S3 Mini常见PCB天线,如果项目需要外接天线,必须买带IPEX座的版本,不要默认所有板子都有。
4.3 采购单样例与价格判断
先聊价格判断,再说采购单。C3 Mini因为芯片便宜、产量大,价格通常很低;S3 Mini因为芯片本身更贵,加上PSRAM和更大的Flash,价格一般是C3的1.5到2倍以上。如果看到某个S3 Mini卖得比C3还便宜,而且标注“8MB PSRAM”,基本可以认定有猫腻,要么Flash缩水、要么PSRAM虚标、要么用的翻新芯片。
下面是我常用的两套采购单,直接抄作业即可。
方案A:低成本IoT传感器网关,目标C3 Mini。
| 物品 | 数量 | 说明 |
|---|---|---|
| C3 Mini开发板 | 2块 | 一块主力,一块备用 |
| USB转TTL模块 | 1个 | 原生USB出问题时救急 |
| 杜邦线 | 若干 | 调试和接线用 |
| Type-C数据线 | 2根 | 确认支持数据传输 |
C3 Mini到手后第一件事就是插电脑,看是否识别出COM口,然后烧一个Blink程序验证,之后再进入项目开发。如果原生USB识别不出来,手头备一个USB转TTL模块,接GPIO20的RX和GPIO21的TX,照样能下载。
方案B:带屏、摄像头或音频项目,目标S3 Mini带8MB PSRAM。
| 物品 | 数量 | 说明 |
|---|---|---|
| S3 Mini开发板(N8R8) | 2块 | 核对模组丝印必须有R8 |
| 0.96寸或1.3寸SPI屏幕 | 1块 | 先拿小屏练手 |
| 摄像头模块(OV2640等) | 1个 | 确认驱动和线序 |
| USB Hub(可选) | 1个 | 做USB Host时备用 |
| 5V/2A电源适配器 | 1个 | 供外部大功率外设 |
这套采购单的核心逻辑是:显示、图像、音频只要沾一样,就不要在PSRAM上省钱。N8R8的S3 Mini虽然贵一截,但项目成活率远高于无PSRAM版本,后期省下的调试时间远超那点差价。
5. 到货后的第一轮验证:别急着写代码
板子到手后不要直接开始写业务代码,先花十分钟验证板子本身是好的。这一步看似浪费时间,实际上能帮你把“硬件问题”和“代码问题”隔离开,后面的开发顺畅得多。
5.1 插电、看灯、确认固件与串口
第一步,插上Type-C数据线看电源灯是否亮起。不亮先别急着退货,检查换线、换USB口;换过之后还不亮,优先怀疑板子问题。灯亮了之后,打开设备管理器看有没有多出一个COM口,C3 SuperMini通常是“USB JTAG/serial debug unit”或者带COM号,S3 Mini如果是带CH340的版本会显示“USB-SERIAL CH340”。看到COM口后,打开串口助手,波特率设115200,按一下板上的RST键,应该能看到启动日志。
日志内容是判断板子是否正常的金标准。正常会打印芯片型号、Flash大小、PSRAM大小等信息;如果日志里出现乱码、不断重启、或者打印“Brownout detector was triggered”之类的内容,多半是供电不足,换一个电流充足的USB口再试。
这一步还要顺手验证一下硬件ID。设备管理器里找到COM口设备,属性、详细信息、硬件ID,看VID是不是符合前文说的对应方案。这一步能确认商家没发错方案,也能提前发现驱动隐患。
5.2 下载测试:Arduino和ESP-IDF两个入口都走通
验证完串口就能进入下载测试。Arduino用户先去开发板管理器安装“esp32 by Espressif Systems”,然后根据板子选择“ESP32S3 Dev Module”或“ESP32C3 Dev Module”。这里有个S3用户特别容易栽的坑:工具菜单里的Flash Size和PSRAM选项必须和实际硬件匹配。选了8MB Flash但实际只有4MB,或者PSRAM选了Enable但板子根本没有PSRAM,烧录可能能过,但上电后不停重启,日志里报内存错误。
ESP-IDF用户更简单,在工程目录执行:
idf.py set-target esp32s3 idf.py build idf.py -p COM3 flash monitor如果你是原生USB的S3板,下载时可能需要先按住BOOT键再插线,进入下载模式后再执行flash命令。新版esptool对原生USB设备识别得已经很好了,Windows下出现“USB JTAG/serial debug unit”就说明枚举成功。
无论用哪种方案,都建议从Blink开始。点灯是嵌入式界的“Hello World”,既验证了GPIO写输出能力,也验证了整个编译、下载、串口监视链路。点完灯再跑一个WiFi扫描例子,确认射频部分正常,之后才真正进入业务开发。
5.3 用USB抓包解决识别问题
如果板子插上电脑后始终无法正常识别,驱动也换过了、线也换过了,可以尝试用“USB抓包”这种更底层的排查方法。Windows系统先安装USBPcap驱动,然后用Wireshark的USBPcap接口抓包,插入开发板的瞬间抓取USB枚举过程,重点看设备描述符、配置描述符是否正确返回。
抓包文件里能看到完整枚举流程,包括请求设备描述符、设置地址、读取配置等步骤。如果设备在第一步就失败,往往是D+/D-线路物理层问题,也就是线材或者板子接触不良;如果枚举到中途挂掉,可能是供电不足或者板子上的USB走线有问题。
这个办法对普通开发者来说偏高级,不建议每个人都去学。日常用设备管理器看VID/PID其实已经能解决八成问题,抓包只是让你在极端情况下多一个诊断工具。但如果你手里同时有好的板子和坏板子,对比一次正常和不正常的枚举流程,对理解USB协议有很大帮助。
6. 常见问题排查速查表
最后把我在群里和评论区看到的典型问题整理成一份速查表,按现象、原因、处理方式三列排好,直接对号入座。
6.1 识别不到串口设备
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 插上没任何反应 | 数据线只充电无数据芯 | 换一根确定支持数据传输的线 |
| 设备管理器黄色感叹号 | 驱动没装对 | 查VID,去芯片官网装对应驱动 |
| 出现“未知USB设备” | D+/D-线路问题或供电不足 | 换USB口、换线、插USB Hub供电 |
| 识别到设备但没有COM口 | 原生USB未进下载模式或驱动缺失 | 按住BOOT重新插线,或装Espressif驱动 |
| 只有一个光驱图标 | 兼容板自带虚拟光驱,属正常现象 | 不用管它,继续看有没有COM口 |
这里面最容易被忽略的是“USB网卡驱动装错成光驱驱动”这类系统混乱情况。Windows偶尔会把USB设备错误识别成其他类别,遇到时不用慌,右键设备卸载,拔线重插,再手动指定驱动路径就能解决。
6.2 下载失败、反复重启
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 下载时“Failed to connect” | 没进入下载模式 | 按住BOOT再复位,或按板子说明操作 |
| 能连上但烧录中途断 | 线材质量差、干扰大 | 换短线、降低波特率到115200 |
| 烧录成功后反复重启 | Flash或PSRAM设置与实际不符 | 核对Arduino工具菜单里的Flash Size和PSRAM |
| 日志出现Brownout | 供电电流不足 | 换后置USB口或外部USB Hub |
| 之前正常突然不能下载 | bootloader损坏 | 先用esptool全片擦除,再重新烧录 |
这里有个我自己踩过的坑:用原生USB的S3板,下载时偶尔需要把esptool的参数从默认的hard_reset改成no_reset,否则板子会在下载前自动复位跳过了下载模式。不同版本的板子行为不一样,遇到连不上时别急着认为板子坏了,先试不同复位参数。
6.3 CDC通道与串口通道混用
C3的USB Serial/JTAG和UART0是两个独立的通道,S3的USB OTG也有自己的串口映射方式。最常出现的问题是:代码里明明打印了日志,串口助手却一片空白,因为日志走的是UART0(GPIO20/21或GPIO43/44),根本没走USB CDC通道。
解决思路是只选一条路走到底。如果用的是板载USB转串口芯片,那就把日志输出到UART0,用串口助手看COM口;如果用的是原生USB,那就确保代码配置了CDC日志输出,或者直接用idf.py monitor这种能自动识别通道的工具。千万不要两条路同时开,尤其还接了外部USB转TTL的时候,日志会被两个目的地同时消费,看起来像系统疯了一样。
碰到USB协议层面的困惑时,比如“端点是什么”“描述符怎么解析”,如果不是在做USB协议开发,建议先绕开,不要陷进去。开发板级应用只需要知道“设备枚举成功没有、COM口出现没有、日志能不能看到”,这三个问题解决之后,项目已经能继续推进了。
7. 最后再分享几个采购习惯
说了这么多,最后聊聊我自己的操作习惯。这几年买开发板踩了不少坑,也帮朋友远程诊断过不少问题,慢慢形成了几条固定动作。
第一条,凡是项目里可能涉及屏幕、摄像头或者音频,不管当下用不用,直接买N8R8的S3 Mini。理由是板子引脚布局和C3 Mini不一定兼容,但S3自己的无PSRAM版本和有PSRAM版本通常是同款布局,代码和硬件迁移成本很低。现在多花点钱,后面想加功能就不用换板了。第二条,纯传感器节点、电池供电、只上报数据这类项目,别犹豫,C3 Mini就是最优解,便宜、低功耗、够用。为了“万一以后可能用到”去买S3,大概率是性能过剩吃灰。
第三条,也是最实用的一条:到货后第一件事不是写代码,而是用esptool把每块板的芯片信息和Flash信息读一遍,记录在购物单备注里。我在采购单上专门留了一列“实测值”,每块板子到手后填上对应COM口、VID、Flash大小、PSRAM大小。这个习惯帮我抓出过两次商家发错货的情况,也让我在项目出问题时能快速判断是哪块板子有问题。
最后再补一个小技巧:原生USB的板子虽然省了一颗串口芯片,但调试时确实不如带CH340的板子方便。如果你经常要换项目、频繁烧录,手头备一个USB转TTL模块非常有用。它不仅能救C3的下载问题,还能顺便拿来调试其他单片机,属于低成本高回报的工具,建议人手一个。