代码如下,经测试sd管脚都可以自定义,其他板子不确定。 板子信息 https://www.nologo.tech/product/esp32/esp32c3/esp32c3supermini/esp32C3SuperMiniFoot.html#%E7%A1%AC%E4%B8%B2%E5%8F%A3

测试的时候发现,用3v电压会出现无法初始化的情况,改为5v正常

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

// 自定义SPI引脚定义
#define SD_CS_PIN     10    // 片选引脚
#define SD_MOSI_PIN   2    // 主输出从输入
#define SD_MISO_PIN   1    // 主输入从输出
#define SD_SCK_PIN    3    // 时钟引脚

void setup() {
  Serial.begin(115200);
  Serial.println("Initializing SD card...");

  // 初始化自定义SPI引脚
  SPI.begin(SD_SCK_PIN, SD_MISO_PIN, SD_MOSI_PIN, SD_CS_PIN);

  // 初始化SD卡
  if (!SD.begin(SD_CS_PIN, SPI,1000000)) {
    Serial.println("SD初始化失败");
    return;
  }else{
  Serial.println("SD初始化成功");
  }
  
  

  writeTestFile();

}

void loop() {
  // 主循环可以添加其他功能
  delay(1000);
}

// 写入测试文件函数
void writeTestFile() {
  File dataFile = SD.open("/test2222.txt", FILE_WRITE);
  
  if (dataFile) {
    dataFile.println("Hello from ESP32-C3!");
    dataFile.print("Custom SPI Pins - CS:");
    dataFile.print(SD_CS_PIN);
    dataFile.print(", MOSI:");
    dataFile.print(SD_MOSI_PIN);
    dataFile.print(", MISO:");
    dataFile.print(SD_MISO_PIN);
    dataFile.print(", SCK:");
    dataFile.println(SD_SCK_PIN);
    dataFile.close();
    Serial.println("Data written to test.txt");
  } else {
    Serial.println("Error opening test.txt for writing");
  }
}

// 读取测试文件函数
void readTestFile() {
  File dataFile = SD.open("/test.txt");
  
  if (dataFile) {
    Serial.println("File content:");
    
    while (dataFile.available()) {
      Serial.write(dataFile.read());
    }
    
    dataFile.close();
  } else {
    Serial.println("Error opening test.txt for reading");
  }
}
最后修改:2025 年 05 月 29 日 03 : 16 PM
如果觉得我的文章对你有用,请随意赞赏