Serial.readBytesUntil() Funktion in der Arduino-Programmierung

Serial Readbytesuntil Funktion In Der Arduino Programmierung



Wenn es um die Programmierung mit Arduino geht, gibt es viele Funktionen, mit denen Sie die Ein- und Ausgabe manipulieren können. Eine Hauptfunktion von Arduino ist Serial.readBytesUntil() , mit dem Sie Daten aus einem Stream lesen können, bis ein bestimmtes Zeichen gefunden wird. Diese Funktion hilft beim Lesen von Daten von seriellen Geräten, bis wir die erforderlichen Daten finden.

Diese Beschreibung kompiliert die Funktion Serial.readBytesUntil() ausführlich. Wir werden diskutieren, was es ist, wie es funktioniert, und den Arduino-Code behandeln, der erklärt, wie man ihn im Arduino-Code verwendet.

Serial.readBytesUntil()

Die Serial.readBytesUntil()-Funktion ist ein Teil der Arduino Serial-Klasse. Diese Funktion liest Daten aus einem Stream, bis sie ein bestimmtes Zeichen oder eine maximale Anzahl von Bytes findet. Sobald das Zeichen oder die maximale Anzahl an Bytes gefunden ist, hört die Funktion auf zu lesen und gibt die gelesenen Daten zurück.







Die Funktion Serial.readBytesUntil() wird beendet, wenn die folgenden Bedingungen erfüllt sind:



  • Wenn die Funktion ein Abschlusszeichen erkennt
  • Die definierte Pufferlänge ist erreicht
  • Die eingestellte Zeit ist abgelaufen oder Timeout

Diese Funktion gibt das Abschlusszeichen nicht zurück, sondern nur Daten bis zum letzten Zeichen vor dem Abschlusszeichen. Wenn von dieser Funktion 0 zurückgegeben wird, bedeutet dies, dass keine gültigen Daten gefunden wurden.



Syntax

Die Funktion Serial.readBytesUntil() hat die folgende Syntax:





Seriell. readBytesBis ( verkohlen Terminator, verkohlen * Puffer, Größe_t Länge ) ;

Parameter

Es folgen die Parameter der Funktion Serial.readBytesUntil():

  • Terminator-Charakter: Das Zeichen, bei dem die Funktion aufhört zu lesen.
  • Puffer: Im Puffer befinden sich die gelesenen seriellen Daten. Der zulässige Datentyp ist ein Array aus char oder byte.
  • Länge: Die maximale Anzahl zu lesender Bytes. Der erlaubte Datentyp ist int .

Zurückkehren

Die Anzahl der im Puffer platzierten Bytes.



Anmerkungen: Bei Rückgabedaten wird das Abschlusszeichen durch die Funktion Serial.readBytesUntil() aus dem Datenstrom verworfen.

Beispiel Arduino-Code

Der folgende Arduino-Code erklärt die Verwendung von Serial.readBytesUntil() Funktion:

Leere aufstellen ( ) {
Seriell. Start ( 9600 ) ; // Initialisieren Sie die serielle Verbindung mit einer Baudrate von 9600
}

Leere Schleife ( ) {
Byte-Puffer [ 5 ] ; // Definiere ein Byte-Array zum Speichern der eingehenden Daten
int AnzahlBytes = Seriell. readBytesBis ( ' \N ' , Puffer, 5 ) ; // Eingehende Daten von der seriellen Verbindung lesen, bis ein Zeilenumbruchzeichen gefunden wird

Wenn ( AnzahlBytes > 0 ) { // Prüfen, ob irgendwelche Bytes gelesen wurden
Seriell. drucken ( 'Empfangenes Zeichen: ' ) ;
Seriell. schreiben ( Puffer, numBytes ) ; // Drucken Sie die empfangenen Daten auf dem seriellen Monitor
Seriell. println ( ) ;
}
}

In der Funktion setup() stellt die Baudrate die serielle Kommunikation her.

In der Funktion loop() definieren wir zuerst ein Byte-Array namens 'Puffer' . Dieses Array wird verwendet, um die eingehenden Daten zu speichern, die von der seriellen Verbindung gelesen werden.

Als nächstes nennen wir die Serial.readBytesUntil() Funktion, die eingehende Daten von der seriellen Verbindung liest, bis sie auf ein Zeilenumbruchzeichen ('\n') trifft. Das nächste Argument ist die Länge des Puffers, der maximal 5 Datenbytes gleichzeitig aufnehmen kann.

Das zurückgegebene Byte wird in gespeichert 'AnzahlBytes' Variable. Falls die empfangenen Daten größer als die Pufferlänge sind, werden die Daten beendet und im nächsten Datenstrom gesendet.

Ausgang

Abschluss

Der Serial.readBytesUntil() Funktion in der Arduino-Programmierung liest Bytes aus einem seriellen Eingangsstrom, bis ein bestimmtes Abschlusszeichen empfangen wird. Die Funktion gibt die Gesamtzahl der gelesenen Bytes an und speichert sie in einem bereitgestellten Puffer. Lesen Sie den Artikel, um weitere Informationen zur Funktion Serial.readBytesUntil() zu erhalten.