// A simple read/write example for SD.h. // Mostly from the SD.h ReadWrite example. // // Your SD must be formatted FAT16/FAT32. // // SD.h does not support some default SdFat features. // To compare flash size, set USE_FAT_FILE_FLAG_CONTIGUOUS, // ENABLE_DEDICATED_SPI, and USE_LONG_FILE_NAMES to zero also // set SDFAT_FILE_TYPE to one in SdFat/src/SdFatCongfig.h // // Set USE_SD_H nonzero to use SD.h. // Set USE_SD_H zero to use SdFat.h. // #define USE_SD_H 0 // #if USE_SD_H #include #else // USE_SD_H #include "SdFat.h" SdFat SD; #endif // USE_SD_H // Modify SD_CS_PIN for your board. // For Teensy 3.6 and SdFat.h use BUILTIN_SDCARD. #define SD_CS_PIN SS File myFile; void setup() { Serial.begin(9600); while (!Serial) { } #if USE_SD_H Serial.println(F("Using SD.h. Set USE_SD_H zero to use SdFat.h.")); #else // USE_SD_H Serial.println(F("Using SdFat.h. Set USE_SD_H nonzero to use SD.h.")); #endif // USE_SD_H Serial.println(F("\nType any character to begin.")); while (!Serial.available()) { yield(); } Serial.print("Initializing SD card..."); if (!SD.begin(SD_CS_PIN)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); // open the file. myFile = SD.open("test.txt", FILE_WRITE); // if the file opened okay, write to it: if (myFile) { Serial.print("Writing to test.txt..."); myFile.println("testing 1, 2, 3."); // close the file: myFile.close(); Serial.println("done."); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } // re-open the file for reading: myFile = SD.open("test.txt"); if (myFile) { Serial.println("test.txt:"); // read from the file until there's nothing else in it: while (myFile.available()) { Serial.write(myFile.read()); } // close the file: myFile.close(); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); } } void loop() { // nothing happens after setup }