代码如下,经测试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");
}
}