mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-01 23:29:28 +01:00
According to #3786 removed the reference to Leonardo only in while(!Serial) of the examples. Changed in in "wait for serial port to connect. Needed for native USB port only"
81 lines
1.4 KiB
C++
81 lines
1.4 KiB
C++
/*
|
|
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();
|
|
}
|
|
}
|
|
|
|
|
|
|