/* 自定義代碼塊樣式 */

2026年2月7日 星期六

ESP32-S3 使用 Adafruit SDFAT 控制 SD card

 

移除 SDFAT 相關的程式庫

安裝 Adafruit SdFat 版本的程式庫

Adafruit SdFat - Adafruit Fork of SdFat

完整code
#include 
#include 
#include 

#define SD_MISO 37
#define SD_MOSI 35
#define SD_SCK  36
#define SD_CS   38

#define SD_FAT_TYPE 1

SPIClass spiSD(FSPI);
SdFat32 SD;

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

  delay(2000);

  pinMode(SD_CS, OUTPUT);
  digitalWrite(SD_CS, HIGH);

  spiSD.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS);

  SdSpiConfig spiConfig(
    SD_CS,
    SHARED_SPI,
    SD_SCK_MHZ(10),
    &spiSD
  );

  if (!SD.begin(spiConfig)) {
    Serial.println("SD init failed");
    while(1);
  }

  Serial.println("SD init OK");

  printCardInfo();
  listFiles();
}

void loop(){}


void printCardInfo() {
  uint32_t sizeMB = SD.card()->sectorCount() / 2048;
  Serial.print("Card size: ");
  Serial.print(sizeMB);
  Serial.println(" MB");
}


void listFiles() {
  char filename[255];
  Serial.println("\n📂 Files:");

  File32 root = SD.open("/");
  File32 file = root.openNextFile();

  while (file) {
    if (file.getName(filename, sizeof(filename))) {
      Serial.print(filename); // Successfully got the name
      Serial.print("  ");
      Serial.println(file.size());
      file = root.openNextFile();
    }
  }
}

輸出結果


沒有留言:

ESP32-S3 使用 Adafruit SDFAT 控制 SD card

  移除 SDFAT 相關的程式庫 安裝 Adafruit SdFat 版本的程式庫 Adafruit SdFat - Adafruit Fork of SdFat 完整code #include #include #include #define SD_MISO 3...