|
- #include <SerialFlash.h>
- #include <SPI.h>
-
- const int FlashChipSelect = 6; // digital pin for flash chip CS pin
- //const int FlashChipSelect = 21; // Arduino 101 built-in SPI Flash
-
- void setup() {
- //uncomment these if using Teensy audio shield
- //SPI.setSCK(14); // Audio shield has SCK on pin 14
- //SPI.setMOSI(7); // Audio shield has MOSI on pin 7
-
- //uncomment these if you have other SPI chips connected
- //to keep them disabled while using only SerialFlash
- //pinMode(4, INPUT_PULLUP);
- //pinMode(10, INPUT_PULLUP);
-
- Serial.begin(9600);
-
- // wait for Arduino Serial Monitor
- while (!Serial) ;
- delay(100);
- Serial.println("All Files on SPI Flash chip:");
-
- if (!SerialFlash.begin(FlashChipSelect)) {
- while (1) {
- Serial.println("Unable to access SPI Flash chip");
- delay(2500);
- }
- }
-
- SerialFlash.opendir();
- int filecount = 0;
- while (1) {
- char filename[64];
- uint32_t filesize;
-
- if (SerialFlash.readdir(filename, sizeof(filename), filesize)) {
- Serial.print(" ");
- Serial.print(filename);
- Serial.print(", ");
- Serial.print(filesize);
- Serial.print(" bytes");
- SerialFlashFile file = SerialFlash.open(filename);
- if (file) {
- unsigned long usbegin = micros();
- unsigned long n = filesize;
- char buffer[256];
- while (n > 0) {
- unsigned long rd = n;
- if (rd > sizeof(buffer)) rd = sizeof(buffer);
- file.read(buffer, rd);
- n = n - rd;
- }
- unsigned long usend = micros();
- Serial.print(", read in ");
- Serial.print(usend - usbegin);
- Serial.print(" us, speed = ");
- Serial.print((float)filesize * 1000.0 / (float)(usend - usbegin));
- Serial.println(" kbytes/sec");
- file.close();
- } else {
- Serial.println(" error reading this file!");
- }
- filecount = filecount + 1;
- } else {
- if (filecount == 0) {
- Serial.println("No files found in SerialFlash memory.");
- }
- break; // no more files
- }
- }
- }
-
- void loop() {
- }
|