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

ESP32-S2无法输出至Serial Monitor,报“No core dump partition found!”错误

ESP32-S2 + PlatformIO 串口无输出及核心转储分区错误解决方案

问题概述

使用ESP32-S2芯片搭配VS Code的PlatformIO开发环境,代码上传正常、LCD触摸等硬件功能正常,但存在以下问题:

  • Serial Monitor无法输出预期调试内容
  • 串口打印错误:E (696) esp_core_dump_flash: No core dump partition found!
  • 测试代码需手动引入<HardwareSerial.h>才能使用Serial功能
  • 调整波特率、重启VS Code后问题未解决

启动日志

ESP-ROM:esp32s2-rc4-20191025
Build:Oct 25 2019
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3ffe6100,len:0x1684
load:0x4004c000,len:0x1018
load:0x40050000,len:0x2f04
entry 0x4004c354
␛[0;32mI (21) boot: ESP-IDF v4.4.1-405-g6c5fb29c2c 2nd stage bootloader␛[0m
␛[0;32mI (21) boot: compile time 04:22:07␛[0m
␛[0;32mI (22) boot: chip revision: 0␛[0m
␛[0;32mI (25) qio_mode: Enabling default flash chip QIO␛[0m
␛[0;32mI (31) boot.esp32s2: SPI Speed      : 80MHz␛[0m
␛[0;32mI (35) boot.esp32s2: SPI Mode       : QIO␛[0m
␛[0;32mI (40) boot.esp32s2: SPI Flash Size : 4MB␛[0m
␛[0;32mI (45) boot: Enabling RNG early entropy source...␛[0m
␛[0;32mI (50) boot: Partition Table:␛[0m
␛[0;32mI (54) boot: ## Label            Usage          Type ST Offset   Length␛[0m
␛[0;32mI (61) boot:  0 nvs              WiFi data        01 02 00009000 00005000␛[0m
␛[0;32mI (69) boot:  1 otadata          OTA data         01 00 0000e000 00002000␛[0m
␛[0;32mI (76) boot:  2 ota_0            OTA app          00 10 00010000 00160000␛[0m
␛[0;32mI (83) boot:  3 ota_1            OTA app          00 11 00170000 00160000␛[0m
␛[0;32mI (91) boot:  4 uf2              factory app      00 00 002d0000 00040000␛[0m
␛[0;32mI (98) boot:  5 ffat             Unknown data     01 81 00310000 000f0000␛[0m
␛[0;32mI (106) boot: End of partition table␛[0m
␛[0;32mI (610) esp_image: segment 0: paddr=00010020 vaddr=3f000020 size=0b458h ( 46168) map␛[0m
␛[0;32mI (618) esp_image: segment 1: paddr=0001b480 vaddr=3ffbedb0 size=02fech ( 12268) load␛[0m
␛[0;32mI (621) esp_image: segment 2: paddr=0001e474 vaddr=40024000 size=01ba4h (  7076) load␛[0m
␛[0;32mI (626) esp_image: segment 3: paddr=00020020 vaddr=40080020 size=234ech (144620) map␛[0m
␛[0;32mI (657) esp_image: segment 4: paddr=00043514 vaddr=40025ba4 size=0920ch ( 37388) load␛[0m
␛[0;32mI (666) esp_image: segment 5: paddr=0004c728 vaddr=50000000 size=00010h (    16) load␛[0m
␛[0;32mI (672) boot: Loaded app from partition at offset 0x10000␛[0m
␛[0;32mI (672) boot: Disabling RNG early entropy source...␛[0m
E (696) esp_core_dump_flash: No core dump partition found!
E (696) esp_core_dump_flash: No core dump partition found!

测试代码

#include <HardwareSerial.h>

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("hello");
  delay(1000);
}

问题分析

  1. 核心转储分区错误:从启动日志的分区表可见,当前未配置核心转储(core dump)分区,但ESP-IDF默认启用了该功能,导致启动时抛出错误。该错误本身不影响硬件功能,但可能干扰串口初始化流程。
  2. Serial需手动引入头文件:正常情况下Arduino框架会自动封装Serial对象,无需手动引入<HardwareSerial.h>,说明项目框架配置可能错误(比如误用纯ESP-IDF框架)或编译缓存异常。
  3. 串口无输出:可能是串口引脚映射错误、初始化时机不对、串口监视器配置不匹配,或核心转储配置占用了串口资源。

解决方案

1. 禁用核心转储功能(推荐)

在项目的platformio.ini文件中添加编译标志,直接禁用核心转储:

[env:esp32-s2-devkitc-1]
platform = espressif32
board = esp32-s2-devkitc-1
framework = arduino
build_flags = -DESP_COREDUMP_ENABLE=n ; 禁用核心转储

2. 修复Serial无需手动引入的问题

  • 确认platformio.ini中的framework = arduino,若之前为framework = espidf,需改为arduino框架——纯ESP-IDF框架需手动处理HardwareSerial。
  • 清理编译缓存:点击PlatformIO面板中的Clean按钮,重新编译上传项目。

3. 确保串口正常输出

  • 检查硬件引脚:ESP32-S2默认调试串口为UART0,对应引脚GPIO1(TX)和GPIO3(RX),确认接线正确;若使用USB CDC串口(ESP32-S2支持USB虚拟串口),需确保USB线连接正常且设备被识别。
  • 优化串口初始化:在setup函数中添加延迟或等待串口就绪的逻辑,避免初始化过早导致输出丢失:
void setup() {
  delay(1000); // 给串口硬件初始化留足时间
  Serial.begin(115200);
  while(!Serial); // 仅适用于USB CDC串口,等待串口连接完成
}

void loop() {
  Serial.println("hello");
  delay(1000);
}
  • 匹配串口监视器配置:在PlatformIO串口监视器中,确认波特率设置为115200,且选择了正确的串口端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:55:17