谁有esp32s3cam板载tf的可运行的、初始化、读取、操作程序,一直超时。或者能帮我解廖这个问题。憋了我一个月了,换了卡、换了板子、换了线,换了开发工具就是搞不定。
用代码跑时,在init之前,对应的全部引脚就已经是1电平了。估计是这个原因造成的超时。
谁有esp32s3cam板载tf的可运行的、初始化、读取、操作程序,一直超时。或者能帮我解廖这个问题。憋了我一个月了,换了卡、换了板子、换了线,换了开发工具就是搞不定。
用代码跑时,在init之前,对应的全部引脚就已经是1电平了。估计是这个原因造成的超时。
晚上好🌙🌙🌙
本答案参考通义千问
你提到的 ESP32-S3-CAM 板载 TF 卡一直出现超时问题,这个问题在嵌入式开发中确实非常常见。根据你的描述,你已经尝试了多种方式(换卡、换板子、换线、换开发工具),但问题依旧存在,说明问题可能出在 硬件初始化、驱动配置、代码逻辑或文件系统设置 上。
SD.begin() 或 SD.cardSize() 等函数时超时或返回 false。| 引脚 | ESP32-S3-CAM 引脚 | 是否接好 | |------|------------------|----------| | CS | GPIO 15 | ✅ | | MOSI | GPIO 23 | ✅ | | MISO | GPIO 19 | ✅ | | SCK | GPIO 18 | ✅ | | VCC | 3.3V | ✅ | | GND | GND | ✅ |
注意:不要使用 5V 供电,TF 卡需 3.3V 电压。
#include <FS.h>
#include <SD.h>
#define SD_CS_PIN 15 // 请根据实际接线修改
void setup() {
Serial.begin(115200);
delay(1000);
if (!SD.begin(SD_CS_PIN)) {
Serial.println("SD 卡初始化失败");
while (1); // 停止程序
}
Serial.println("SD 卡初始化成功");
// 打印 SD 卡信息
Serial.print("SD 卡大小: ");
Serial.print(SD.cardSize() / (1024 * 1024));
Serial.println(" MB");
}
void loop() {
// 主循环
}
#include <FS.h>
#include <SD.h>
#define SD_CS_PIN 15
void setup() {
Serial.begin(115200);
delay(1000);
if (!SD.begin(SD_CS_PIN)) {
Serial.println("SD 初始化失败");
while (1);
}
// 创建文件
File file = SD.open("/test.txt", FILE_WRITE);
if (file) {
file.println("Hello, ESP32-S3-CAM!");
file.close();
Serial.println("文件写入成功");
} else {
Serial.println("文件创建失败");
}
// 读取文件
file = SD.open("/test.txt", FILE_READ);
if (file) {
while (file.available()) {
Serial.write(file.read());
}
file.close();
} else {
Serial.println("文件读取失败");
}
}
void loop() {
// 空循环
}
| 错误提示 | 原因 | 解决方法 |
|----------|------|-----------|
| SD.begin failed | SPI 配置错误、SD 卡损坏 | 检查引脚、更换 SD 卡 |
| Card not found | SD 卡未插入或格式不对 | 插入 SD 卡、格式化为 FAT32 |
| File not found | 文件路径错误 | 确认路径 /test.txt |
| Timeout | SPI 速度过高 | 尝试降低 SPI 速度(SD.begin(SD_CS_PIN, SPI_HALF_SPEED)) |
ESP32-S3-CAM 的 TF 卡超时问题,主要集中在以下几点:
- 硬件连接是否正确
- SD 卡格式是否为 FAT32
- SPI 配置是否合理
- SD 库是否为最新版本
如果你能提供具体的 错误信息(如串口输出内容)或 代码片段,我可以进一步帮你定位问题。
如有需要,我也可以为你提供一个完整的 ESP32-S3-CAM + TF 卡 + SD 卡读写示例工程,欢迎继续提问!