arduino读取sd卡失败

arduino读取sd卡失败,第1张

arduino读取sd卡失败

1.检查sd卡是否支持arduino,一般情况下只有micro sd卡才能支持arduino;

2.检查sd卡的连接是否正常;

3.检查sd卡的容量是否超过arduino的最大容量,arduino的历森友最大容量一般为2G;

4.检查sd卡是否被格式化为FAT格式;

5.检查arduino是否正确连肢槐春哗接sd卡,比如检查sd卡的物理连接是否正确;

6.检查arduino的程序是否正确,比如检查sd卡的初始化程序是否正确;

7.检查sd卡是否被其他设备正确识别,如果其他设备也无法识别,则可能是sd卡本身的问题。

 SD卡体积小,价格便宜,因此在许多工业数据记录和家用电子产品中有越来越多的应用。Arduino可以通过SPI接口与之通信,进行诸如建立文件、删除文件、向文件中添加内容、修改文件等 *** 作,这样采用Arduino配合SD卡可以开发数据记录设备。

Arduino与SD卡的简单连接,只需要6只电阻和1张SD卡,通过软件模拟的方式实现SPI接口,Arduino与SD卡连接电路如图2所示。

2.gif

 

图2 Arduino与SD卡连接电路

由于SD卡的 *** 作电压为3.3 V,而Arduino的逻辑电压为5 V,因此需要用起分压作用的电阻(本文采用了Josh Adams书中的验证性电路),在实际的应用中最好采用分压模块以保证卡和Arduino板的安全。之后在网址http://code.google.com/p/sdfatlib/下载Bill Greiman开发的SdFat.h和SdFatUtil.h头文件和库文件,并安装到Arduino安装目录中的库文件夹中就可以使用了。简化程序如下:

#include

#include

Sd2Card card

SdVolume volume

SdFile root,file

void writeString(SdFile&f,char * str){

Uint8_t n

for(n=0,str[n]n++)

F.write((uint8_t*) str,n)

}

void setup(){

card.init(SPI_HALF_SPEED)

root.openRoot(&volume)

File.open(&root,“testfile.txt”,0_CREAT|0_EXCL|0_WRITE)斗仔庆

File.timestamp(2,2011,11,11,25.12.34.56)

writeString(file,“something you want ”)

File.cose()

}

void loop(){

}

将该程序下载到Arduino主控板内即可向SD卡内建立一个新的文件,并写入“something you want ”字符,当然也可以根据需要写入想要记录的信息。

程序的开头包含了两戚桥个头文件:SdFat.h和SdFatUtil.h。这两个头文件定义了一些 *** 作SD卡必需的类。之后建立4个有关 *** 作SD卡的对象。然后自定义了一个向SD卡内写一个字符串的函数,这个函数需要一个文件的引用和一个字符串作为参数。setup函数是Arduino软件项目中必须有的,做一些运行的初始化工作。这个实例程序由于只是完成简单的写文件 *** 作,因此对文件的写 *** 作在这个函数中完成。函数依次完成了设定SD卡的通信模式为SPI模式、打开卡的根目录、建立文件名为testfile.txt的文本文件、给文件添加时间信息、向文件内写入文件内容、关闭文件。从以上的过程中看,采用Arduino *** 作SD卡上的文件与采用C语言 *** 作PC上的文件十分相似,这也是空握Arduino易用性的体现,再一次验证了采用Arduino开发电子互动产品的方便性。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12562756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存