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.