Ich habe eine Textdatei auf einer SD-Karte und versuche, die Zeilen auf dem seriellen Monitor zu drucken.
Dieser Code funktioniert:
#include <SPI .h> # include <SD.h>File myFile; void setup () {Serial.begin (9600); Serial.print ("SD-Karte initialisieren ..."); PinMode (10, OUTPUT); if (! SD.begin (4)) {Serial.println ("Initialisierung fehlgeschlagen!"); Rückkehr; } Serial.println ("Initialisierung abgeschlossen."); myFile = SD.open ("c.txt"); if (myFile) {Serial.println ("c.txt:"); while (myFile.available ()) {Serial.write (myFile.read ()); // DIESE LINIE HIER} myFile.close (); } else {// Wenn die Datei nicht geöffnet wurde, drucken Sie einen Fehler: Serial.println ("Fehler beim Öffnen von c.txt"); }} void loop () {}
Wenn ich jedoch die Zeile Serial.write (myFile.read ()) ersetze,
durch Serial. println (myFile.read ());
, dann gibt der Code nicht die richtigen Zeilen zurück.
Er sollte ähnliche Zahlen zurückgeben (wenn auch 3000):
564564564564564564564464564664564
Wenn ich Serial.println
verwende, werden Zahlen wie diese zurückgegeben (und es hört nicht bei 3000 Zeilen auf):
13105454521310535452
Und wenn ich versuche, int (myFile.read ())
auszuführen, wird die Ganzzahl zu den falschen Zahlen (zurückgegeben) von println
), nicht die richtigen (zurückgegeben von write
) .\
Wie erhalte ich eine von Serial.write zurückgegebene Nummer? (myFile.read ());
eine ganze Zahl sein?