Wenn längere Datenzeilen über die Serielle Schnittstelle in den Arduino eingelesen werden sollen ist es nötig den seriellen Buffer zu erhöhen.
Die Voreinstellung in der Arduino Umgebung ist 64 Byte pro Buffer. NMEA Datensätze können aber länger sein, z.B 74 Byte. Oder es können zwei Zeilen ankommen bis wieder Zeit ist den Seriellen Buffer zu lesen. Dann kann die Variable SERIAL_RX_BUFFER_SIZE von 64 auf 128 oder 256 Byte erhöht werden.
Dazu geht man unter Datei > Voreinstellungen
Im Fenster unten auf preferences.txt klicken.
Dann ist man automatisch im richtigen Verzeichnis.
Hier nach HardwareSerial.h suchen und die Arduino Datei in einem Texteditor öffnen. Ggf. sollte vorher eine Sicherheitskopie der Originaldatei angelegt werden.
Dann die Zeile ändern auf den gewünschten Wert. Hier ist sie von 64 zu 128 geändert worden.
Das gleiche kann man mit der SERIAL_TX_BUFFER_SIZE machen, wenn benötigt.
Beim Arduino Uno gibt es eine Serielle Schnittstelle, da wird dann die entsprechende Buffer Größe vom Programm Speicher RAM abgezogen und es steht entsprechend weniger Speicherplatz für das Programm zur Verfügung.
Beim Arduino Mega mit 4 Schnittstellen wird der Buffer für alle 4 Schnittstellen angepaßt und es steht auch hier entsprechend weniger RAM zur Verfügung. Vorher wird 4 x 64 Byte = 256 Byte RAM belegt und nachher 4 x 128 Byte = 512 Byte.
Nach der Änderung in der Datei HardwareSerial.h muß das Arduino Programm geschlossen werden und neu gestartet werden, erst danach greift diese Änderung.
Verwendet wurde:
Arduino 1.8.0 Software
von Matthias Busse
Pingback: RX String mit serialEvent einlesen und als Integer oder Float ausgeben | Shelvin – Elektronik ausprobiert und erläutert
Pingback: My Lab #3.2|Arduino Projects|Light Show V5.0|Vixen Lights 3|Last Christmas (All of Part)| 2020.12.25 – Eletrica Hanssen