建议使用本模板发帖,也可以自由编辑,但必须完整描述产品及问题(至少包含:产品名称、版本、问题描述)。
产品型号 / 套件:幻尔(Hiwonder)ESP32-S3 旗舰版套件
版本 / 规格:
控制板 / 主板:ESP32-S3
操作系统 / 软件 / 固件版本:Windows;Arduino IDE;Arduino ESP32 开发板核心版本 2.0.12;
参考的教程或步骤:《2.2 基础课程》中的 SD 卡实验,配套 SPI_SDCARD 例程。
问题描述:SD 卡初始化失败。
报错信息 / 日志 / 截图:
复现步骤:
1.
2.
3.
已尝试的排查:
补充说明:
正在为您安排官方支持人员处理。
若需要我继续协助,可以回复或@我。 @hiwonder_VioLeTzZ
这边测试功能正常,需要检查一下SD卡的文件系统是否为FAT32,如果不是的话需要转换为这个格式,可以通过SD Card Formatter或者Raspberry Pi Imager这两个工具去处理。
SD Card Formatter.lnk (2.6 KB)
您好,针对 ESP32-S3 旗舰版套件运行《2.2 基础课程》中的 SPI_SDCARD 例程出现“SD卡初始化失败”的问题,说明如下:
1. 先了解报错现象(属正常行为)
例程在 setup() 中调用 sdcard_init() 对 SD 卡进行初始化,若 SD.begin() 失败会在串口循环打印“SD卡初始化失败!”,同时红灯闪烁告警,直到初始化成功为止;若检测不到卡则会打印“没有卡连接”。所以反复打印该错误并不代表程序本身有问题,而是卡没有通过初始化。
2. 主要排查步骤(按顺序检查)
- 检查 SD 卡文件系统是否为 FAT32:Arduino 的 SD 库只支持 FAT16/FAT32 文件系统,如果卡是 exFAT、NTFS 或其他格式,
SD.begin() 会失败。请先用 SD Card Formatter 或 Raspberry Pi Imager 将卡格式化为 FAT32 后再试。
- 确认 TF 卡已插到位:卡槽在开发板上的 TF(SD) 卡槽位置(编号 21),插入时金属触点朝下,推到位并听到卡扣声。
- 确认卡容量:例程源码中区分卡类型时注明 SDSC 卡最大 2G、SDHC 卡最大 32G,建议使用 32GB 以内的 SDHC 卡测试。
- 确认烧录环境与例程未改动:开发板型号选择 ESP32S3 Dev Module,串口监视器波特率设为 115200;确认打开的是官方
SPI_SDCARD 例程原文件。
- 换卡交叉测试:换一张已知正常的 TF 卡(先格式化 FAT32)再跑一次,用于排除卡本身损坏或接触不良。
- 供电检查:若同时使用显示屏、摄像头、音频等外设,建议按开发板说明使用电池供电(供电电压 5-12.6V),仅跑基础 SD 实验时用 Type-C 供电一般也可以。
3. 补充说明
如果您后续运行的是外置字体、文件读取、图片显示、音乐播放等实验时出现报错,那是因为 SD 卡里缺少对应文件,需要把教程同目录下的“SD卡文件.rar”解压后全部复制到 SD 卡根目录,再插入开发板重新运行程序。
如果按以上步骤处理后仍然初始化失败,请提供:
- 串口监视器(115200 波特率)的完整日志;
- 所用 SD 卡的品牌、容量及格式化后的文件系统信息;
- 卡插入卡槽的照片。
以便进一步判断是卡的问题还是板载卡槽/硬件的问题。
若您觉得本回复有帮助,可以点击下方按钮将其标记为解决方案。
您好!既然已确认 SD 卡是 FAT32,说明文件系统这个环节可以排除了。请按以下顺序继续排查:
-
先看清串口打印的是哪一句提示(波特率 115200):
- 例程中
sdcard_init() 里两次 SD.begin() 都失败时,会打印“SD卡初始化失败!”,随后返回 1;
- 而如果
SD.begin() 通过、但 SD.cardType() 读取不到卡类型,则会打印“没有卡连接”。
- 这两种提示对应的方向不同:前者多为卡与板通信失败(接触、容量等),后者多为接触不良或卡不兼容。
-
确认卡容量:例程源码中按卡类型区分时注明 SDSC 卡最大 2G、SDHC 卡最大 32G,建议使用 32GB 以内的 SDHC 卡测试;容量过大或非标准卡容易出现初始化失败。
-
重新插卡并断电重启:确保 TF 卡完全插到位、接触良好,插好后重新上电(或复位)再观察;有条件的话,换一张已知正常的卡,先用 SD Card Formatter 或 Raspberry Pi Imager 格式化为 FAT32 后交叉测试,排除卡本身的问题。
-
确认烧录与串口设置:开发板型号选择 ESP32S3 Dev Module,串口监视器波特率设为 115200,并确认打开的是官方 SPI_SDCARD 例程原文件、未做改动。
-
补充说明:该例程的设计就是“初始化失败时循环打印错误提示、LED 闪烁告警,直到初始化成功为止”,所以持续报错只代表卡还没通过初始化,程序本身没有异常。
如果以上步骤都试过后仍然失败,请提供:
- 串口监视器(115200 波特率)的完整日志(特别是打印的是“SD卡初始化失败”还是“没有卡连接”);
- 所用 SD 卡的品牌、容量及格式化工具;
- 卡插入卡槽的照片。
以便进一步判断是卡的问题还是板载卡槽/硬件的问题。
若您觉得本回复有帮助,可以点击下方按钮将其标记为解决方案。