求助!arduino nano无法读取TF卡

xlzawa 2024-07-24697 次点击
arduino nano读不出来TF卡怎么解决
程序
```
#include <SPI.h>
#include <SD.h>

// 设置SD卡的芯片选择引脚
const int chipSelect = 4;

// 创建SD卡对象
Sd2Card card;
SdVolume volume;
SdFile root;

void setup() {‌‌
// 初始化串口通信
Serial.begin(9600);
while (!Serial) {‌‌
; // 等待串口连接
}

Serial.println("正在初始化SD卡");

// 设置硬件SS引脚为输出模式
pinMode(4, OUTPUT);

// 初始化SD卡
if (!card.init(SPI_HALF_SPEED, chipSelect)) {‌‌
Serial.println("初始化失败。请检查以下事项:");
Serial.println("* 是否插入了卡片?");
Serial.println("* 接线是否正确?");
Serial.println("* 是否更改了芯片选择引脚以匹配您的卡盾或模块?");
return;
} else {‌‌
Serial.println("接线正确,且卡片已存在。");
}

// 打印SD卡类型
Serial.print("\n卡片类型:");
switch (card.type()) {‌‌
case SD_CARD_TYPE_SD1:
Serial.println("SD1");
break;
case SD_CARD_TYPE_SD2:
Serial.println("SD2");
break;
case SD_CARD_TYPE_SDHC:
Serial.println("SDHC");
break;
default:
Serial.println("未知");
}

// 尝试初始化卷
if (!volume.init(card)) {‌‌
Serial.println("无法找到FAT16/FAT32分区。");
Serial.println("请确保您已经格式化了卡片");
return;
}

// 打印卷类型和大小
uint32_t volumesize;
Serial.print("\n卷类型是FAT");
Serial.println(volume.fatType(), DEC);
volumesize = volume.blocksPerCluster(); // 簇是块的集合
volumesize *= volume.clusterCount(); // 我们有很多簇
volumesize *= 512; // SD卡块总是512字节
Serial.print("卷大小(字节):");
Serial.println(volumesize);
Serial.print("卷大小(千字节):");
volumesize /= 1024;
Serial.println(volumesize);
Serial.print("卷大小(兆字节):");
volumesize /= 1024;
Serial.println(volumesize);

// 打开根目录
root.openRoot(volume);

// 列出SD卡中的所有文件
Serial.println("\n卡片上找到的文件(名称,日期和大小,单位字节):");
root.ls(LS_R | LS_DATE | LS_SIZE);
}

void loop() {‌‌
// 循环中不需要做任何事情
}
```
arduino IDE2.1.1输出
正在初始化SD卡
初始化失败。请检查以下事项:

是否插入了卡片?
接线是否正确?
是否更改了芯片选择引脚以匹配您的卡盾或模块?
SD.h和SPI.h库用的是IDE自带的库

连接:
sd nano
vcc 3v3
gnd gnd
cs d4
sck d13
mosi d11
miso d12

128MBTF卡在电脑和手机上能读出来,用win10系统格式化为FAT和FAT32,都读不出来
1GBTF卡同上,也读不出来
TF模块使用HW-125模块
arduino nano使用的是京东登仕唐工业品旗舰店的板子,杜邦线也检查了没问题
尝试过能找到的所有方法都没有成功
收藏 ♥ 感谢
Spoony 小组长 2024-07-30 
这个还得看 SD 卡模块的例程来调试,可能是接线问题或者模块本身故障。

登录注册 后可回复。




› 相关内容关注微信公众号