diff --git a/Metro_RP2350_Examples/Arduino_SDCard/.none.test.only b/Metro_RP2350_Examples/Arduino_SDCard/.none.test.only new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/Metro_RP2350_Examples/Arduino_SDCard/.none.test.only @@ -0,0 +1 @@ + diff --git a/Metro_RP2350_Examples/Arduino_SDCard/Arduino_RP2350_microSD.ino b/Metro_RP2350_Examples/Arduino_SDCard/Arduino_RP2350_microSD.ino new file mode 100644 index 000000000..47cfa02f2 --- /dev/null +++ b/Metro_RP2350_Examples/Arduino_SDCard/Arduino_RP2350_microSD.ino @@ -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 + by Tim Cocks + + + + This example code is in the public domain. + + */ + +#include +#include "SdFat.h" + +#define SD_CS_PIN 39 + +SdFat SD; +FsFile myFile; +SdSpiConfig config(SD_CS_PIN, DEDICATED_SPI, SD_SCK_MHZ(16), &SPI1); + +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 +}