2025.9.17卡了一下午,终于搞出来一个可以供esp32s3使用的sd卡驱动模块。ps:有时候要选择对的sd卡驱动模块。

#include <SD.h>
#include <SPI.h>

#define SD_CS 39
#define SD_MOSI 40
#define SD_MISO 42
#define SD_SCK 41

// 文件操作参数
const char* FILE_NAME = "/testfile1.txt";
const char* FILE_CONTENT = "This is a test file content for SD card read/write demonstration.";
// 写入文件到SD卡
void writeFileToSD() {
  File file = SD.open(FILE_NAME, FILE_WRITE);
  if (!file) {
    Serial.println("创建文件失败");
    return;
  }

  // 写入内容
  size_t bytesWritten = file.print(FILE_CONTENT);
  file.close();

  Serial.print("成功写入文件: ");
  Serial.println(FILE_NAME);
  Serial.print("写入字节数: ");
  Serial.println(bytesWritten);
}

// 从SD卡读取文件
void readFileFromSD() {
  File file = SD.open(FILE_NAME);
  if (!file) {
    Serial.println("打开文件失败");
    return;
  }

  Serial.println("\n文件内容:");
  // 逐字节读取并打印
  while (file.available()) {
    Serial.write(file.read());
  }
  file.close();
}


void setup() {
  Serial.begin(115200);
  delay(1000);

  // 初始化SPI和SD卡
  SPI.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS);
  if (!SD.begin(SD_CS, SPI)) {
    Serial.println("SD卡初始化失败");
    while (1); // 卡住等待检查
  }
  Serial.println("SD卡初始化成功");

  // 执行文件操作
  writeFileToSD();
  readFileFromSD();
}

void loop() {
  // 空循环
}

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐