借用Arduino的SD库中的例子来研究下SD卡的操作。

         首先,直接导入相应的例程看看运行的效果:

370_SD卡信息的获取例程分析_Arduino

         上面是例子运行的效果,不仅获得了卡的基本信息,同时扫描出来了卡上的文件以及基本的文件信息。至于日期,应该是Arduino本身没有始终信息写入了一个默认的信息。

         分析一下例子代码:

370_SD卡信息的获取例程分析_嵌入式_02

         处理逻辑还是比较清晰的,上面的测试应该是判断了SPI的通信效果。成功则PASS,否则后面的直接不会执行。

370_SD卡信息的获取例程分析_嵌入式_03

         这里,判断了SD卡的类型。一共有三种,如果不在其中则认定为未知。不过,这跟我查到的SD卡的类型分类似乎不是很一致。我查到的如下:

370_SD卡信息的获取例程分析_Arduino_04

         继续往下的处理:

370_SD卡信息的获取例程分析_Arduino_05

         在这里,例子判断了SD卡的文件系统类型。如果不是FAT16或者FAT32则提示格式化。那么,我的问题倒有了:这个文件系统是否支持SD卡文件系统的格式化呢?如果想实现应该如何去做呢?

370_SD卡信息的获取例程分析_嵌入式_06

         这部分,判断了SD卡的容量信息并检索了文件系统中的文件。看起来,这个ls的功能是这个文件系统给Arduino专门定制的。不然,无法直接绑定到串口功能上。这也是一个很有用的功能,后期在分析代码的时候也需要仔细研究一下。