Merge pull request #3100 from FoamyGuy/fruit_jam_examples

fruit jam arduino sd card read write
This commit is contained in:
foamyguy 2025-08-06 14:19:11 -05:00 committed by GitHub
commit e804e240a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 91 additions and 0 deletions

View file

@ -0,0 +1,91 @@
// SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries
//
// SPDX-License-Identifier: MIT
/*
SD card read/write
This example shows how to read and write data to and from an SD card file
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 35
** MISO - pin 36
** CLK - pin 34
created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
modified 14 Feb 2023
by Liz Clark
modified 25 Aug 2023
by Kattni Rembor
modified 18 Feb 2025, 5 Aug 2025
by Tim Cocks
This example code is in the public domain.
*/
#include <SPI.h>
#include "SdFat.h"
#define SD_CS_PIN 39
SdFat SD;
FsFile myFile;
SdSpiConfig config(SD_CS_PIN, DEDICATED_SPI, SD_SCK_MHZ(16), &SPI);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) { yield(); delay(10); } // wait till serial port is opened
delay(100); // RP2040 delay is not a bad idea
Serial.print("Initializing SD card...");
// Retry mechanism for SD card initialization
while (!SD.begin(config)) {
Serial.println("initialization failed! Retrying...");
delay(1000); // Wait for a second before retrying
}
Serial.println("initialization done.");
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
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.");
myFile.println("hello world!");
// 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
}