Arduino库教程-SD-List Files
Using the SD library to print the directory of files on SD card
- 这个示例演示如何列出在SD卡目录中可用的文件。请点击这里了解更多关于SD卡的信息。
硬件要求
- Arduino or Genuino board
- Ethernet Shield (或者其他有SD插槽的开发板)
- 格式化后的 SD 卡
电路
图由 Fritzing 绘制
- Arduino或genuino板必须连接到 Ethernet Shield,并且也有连接到计算机的USB电缆。
原理图
图由 Fritzing 绘制
样例代码
下面的代码被配置为使用一个Ethernet shield,上面有一个板上SD卡插槽。在setup()里,调用SD.begin(),命名pin4为CS引脚。此引脚的变化取决于你正在使用的shield或开发板的制作。
主要的loop()什么都不做,因为setup()里就调用了这个函数,打印出的SD卡的“/”的文件目录。这是因为我们只需要看到它一次。
这个printDirectory 函数扫描全部列表,并通过串口打印每个文件和当前目录。同样可以打印文件的大小。
/*
Listfiles
This example shows how print out the files in a
directory on a SD card
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
modified 2 Feb 2014
by Scott Fitzgerald
This example code is in the public domain.
*/
#include <SPI.h>
#include <SD.h>
File root;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
root = SD.open("/");
printDirectory(root, 0);
Serial.println("done!");
}
void loop() {
// nothing happens after setup finishes.
}
void printDirectory(File dir, int numTabs) {
while (true) {
File entry = dir.openNextFile();
if (! entry) {
// no more files
break;
}
for (uint8_t i = 0; i < numTabs; i++) {
Serial.print('\t');
}
Serial.print(entry.name());
if (entry.isDirectory()) {
Serial.println("/");
printDirectory(entry, numTabs + 1);
} else {
// files have sizes, directories do not
Serial.print("\t\t");
Serial.println(entry.size(), DEC);
}
entry.close();
}
}
[Get Code]
更多
SD library - SD 卡库的参考网页.
Notes on using SD cards – 当你使用SD卡时,你需要知道什么
Datalogger - 如何把三个模拟传感器的数据记录到SD卡。
DumpFile - 怎样从SD卡里读取一个文件。
Files - 怎样创建和删除一个SD卡文件。
Listfiles - 怎样将SD卡上的目录中的文件打印出来。
ReadWrite - 怎样从一个SD卡里读取或写入文件
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号