#include <SPI.h>
#include <SD.h>
const int chipSelect = 4; // 对应硬件CS引脚
void setup() {
Serial.begin(9600);
while (!Serial); // 等待串口连接(仅调试需要)
// 初始化SD卡
if (!SD.begin(chipSelect)) {
Serial.println("SD卡初始化失败!");
errorHandler();
return;
}
Serial.println("SD卡初始化成功");
// 写入测试数据
writeFile("test0.txt", "中国香河英茂科工");
writeFile("test1.txt", "Hello, Arduino SD Card!");
// 读取验证
readFile("test0.txt");
readFile("test1.txt");
}
void loop() {
// 空循环
}
//================ 自定义函数 ================
void writeFile(const char* filename, const char* content) {
File file = SD.open(filename, FILE_WRITE);
if (file) {
file.println(content);
file.close();
Serial.print("已写入文件: ");
Serial.println(filename);
} else {
Serial.println("文件创建失败");
errorHandler();
}
}
void readFile(const char* filename) {
File file = SD.open(filename);
if (file) {
Serial.print("\n文件内容(");
Serial.print(filename);
Serial.println("):");
while (file.available()) {
Serial.write(file.read());
}
file.close();
} else {
Serial.println("文件读取失败");
errorHandler();
}
}
void errorHandler() {
// 删除以下代码
// if (SD.card()->errorCode()) {
// Serial.print("SD卡错误代码: 0x");
// Serial.println(SD.card()->errorCode(), HEX);
// }
Serial.println("\n【排查步骤】");
Serial.println("1. 检查CS引脚接线");
Serial.println("2. 确认SD卡格式为FAT16/FAT32");
Serial.println("3. 测量3.3V供电是否稳定");
while(true);
}
|