Имеем код, который считывает файл с SD карточки и передаёт его в сериал:
#include <SPI.h> #include <SD.h> const int chipSelect = 4; File dataFile; void setup(){ Serial.begin(115200); Serial.print("Initializing SD card..."); opensd(); } void opensd(){ if (!SD.begin(chipSelect)) { return; }else{ Serial.println("Card loaded"); openme(); } } void openme(){ dataFile = SD.open("test2.wav"); if (dataFile) { while (dataFile.available()) { Serial.write(dataFile.read()); } dataFile.close(); }else { Serial.println("error opening file"); } } void loop(){ }
Как правильно сделать так, что бы при окончании чтения файла код чтения и передачи начинался заново?
Был такой вариант:
void openme(){ dataFile = SD.open("test2.wav"); if (dataFile) { while (dataFile.available()) { Serial.write(dataFile.read()); } delay(1000); dataFile.close(); openme(); }else { Serial.println("error opening file"); } }
Т.е. ф-ция открытия файла вызывала саму себя после, вроде как, оконочания чтения файла. Но, после раза эдак 20ого передача заканчивалась