打印
[资料干货]

雷龙SD卡与Arduino Uno

[复制链接]
32|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丙丁先生|  楼主 | 2025-4-16 14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


#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);
}


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

914

主题

3296

帖子

5

粉丝