You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需ESP-IDF工具链,在PlatformIO中实现ESP32-S2原生USB调试?

实现ESP32-S2 USB CDC串口输出(PlatformIO + Arduino框架)

1. 配置platformio.ini

在项目配置文件中添加编译宏与板级参数,启用USB CDC并指定引脚:

[env:esp32s2]
platform = espressif32
board = esp32s2dev
framework = arduino
build_flags =
    -DARDUINO_USB_MODE=1          ; 启用USB CDC模式
    -DARDUINO_USB_CDC_ON_BOOT=1   ; 开机自动初始化USB CDC
    -DARDUINO_USB_DM_PIN=19       ; 指定USB-对应GPIO19
    -DARDUINO_USB_DP_PIN=20       ; 指定USB+对应GPIO20
    -DCORE_DEBUG_LEVEL=3          ; 可选:设置日志输出级别(1-5,数字越大越详细)
; 若需同时保留UART串口,添加 -DARDUINO_USB_CDC_AND_HMSC=1,此时Serial对应USB CDC,Serial1对应UART

2. 修改Arduino代码初始化USB串口

调整代码逻辑,让日志输出到USB CDC虚拟串口:

#include <Arduino.h>

void setup() {
  // 初始化USB CDC虚拟串口(波特率参数可忽略,USB串口无物理波特率限制)
  Serial.begin(115200);
  // 可选:等待主机端打开串口后再输出,避免开机初期日志丢失
  while (!Serial) {
    delay(10);
  }
  Serial.println("USB CDC串口已启动");
}

void loop() {
  Serial.println("USB CDC测试输出");
  delay(1000);
}

说明:启用ARDUINO_USB_CDC_ON_BOOT=1后,Arduino框架会自动将Serial对象映射到USB CDC,原UART串口需用Serial1(若保留UART功能)调用。

3. 验证烧录与串口输出

  • 保持USB连接(你的板子已支持USB烧录,无需额外操作)
  • 烧录完成后,在PlatformIO串口监视器中选择对应的USB虚拟串口设备,即可看到实时输出的日志信息

额外提示

  • 无需修改分区表:默认分区配置已支持USB CDC功能,无特殊需求无需调整
  • 自定义板配置:若有专属board JSON文件,可将引脚与USB宏直接写入配置,避免重复设置

内容的提问来源于stack exchange,提问作者papakpmartin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:27:43