< >
Home » Arduino库教程 » Arduino库教程-SD-List Files

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卡里读取或写入文件

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: arduino库教程, arduino sd, arduino list files