Serial.readBytesUntil()-funktion i Arduino-programmering

Serial Readbytesuntil Funktion I Arduino Programmering



Når det kommer til programmering med Arduino, er der mange funktioner, som du kan bruge til at manipulere input og output. En hovedfunktion i Arduino er Serial.readBytesUntil() , som giver dig mulighed for at læse data fra en strøm, indtil et bestemt tegn er fundet. Denne funktion hjælper med at læse data fra serielle enheder, indtil vi finder de nødvendige data.

Denne opskrivning kompilerer funktionen Serial.readBytesUntil() i dybden. Vi vil diskutere, hvad det er, hvordan det virker, og dække Arduino-kode, der forklarer, hvordan man bruger det i Arduino-kode.

Serial.readBytesUntil()

Funktionen Serial.readBytesUntil() er en del af Arduino Serial-klassen. Denne funktion læser data fra en strøm, indtil den finder et bestemt tegn eller et maksimalt antal bytes. Når tegnet eller det maksimale antal bytes er fundet, stopper funktionen med at læse og returnerer de data, den har læst.







Funktionen Serial.readBytesUntil() afsluttes, når følgende betingelser er opfyldt:



  • Når funktion opdager et terminatortegn
  • Den definerede bufferlængde er nået
  • Den indstillede tid er passeret eller Time out

Denne funktion returnerer ikke terminatortegnet, den returnerer kun data op til det sidste tegn før terminatoren. Når 0 returneres af denne funktion, betyder det, at der ikke er fundet gyldige data.



Syntaks

Funktionen Serial.readBytesUntil() har følgende syntaks:





Seriel. readBytesUntil ( char terminator, char * buffer, størrelse_t længde ) ;

Parametre

Følgende er parametrene for funktionen Serial.readBytesUntil():

  • Terminator karakter: Det tegn, som funktionen stopper med at læse ved.
  • buffer: I buffer er de læste serielle data. Den tilladte datatype er et array af char eller byte.
  • længde: Det maksimale antal bytes at læse. Den tilladte datatype er int .

Vend tilbage

Antallet af bytes placeret i bufferen.



Bemærkninger: Til gengæld kasseres terminatortegnet af funktionen Serial.readBytesUntil() fra datastrømmen.

Eksempel Arduino-kode

Følgende Arduino-kode forklarer brugen af Serial.readBytesUntil() fungere:

ugyldig Opsætning ( ) {
Seriel. begynde ( 9600 ) ; // Initialiser den serielle forbindelse med en baudrate på 9600
}

ugyldig sløjfe ( ) {
byte buffer [ 5 ] ; // Definer et byte-array til at gemme de indgående data
int antal Bytes = Seriel. readBytesUntil ( ' \n ' , buffer, 5 ) ; // Læs indgående data fra den serielle forbindelse, indtil der stødes på et linjeskifttegn

hvis ( antal Bytes > 0 ) { // Tjek om nogen bytes blev læst
Seriel. Print ( 'Modtaget karakter: ' ) ;
Seriel. skrive ( buffer, antalBytes ) ; // Udskriv de modtagne data til den serielle monitor
Seriel. println ( ) ;
}
}

I setup()-funktionen etablerer baudrate seriel kommunikation.

I loop()-funktionen definerer vi først et byte-array kaldet 'buffer' . Dette array vil blive brugt til at gemme de indgående data læst fra den serielle forbindelse.

Dernæst kalder vi Serial.readBytesUntil() funktion, som læser indgående data fra den serielle forbindelse, indtil den støder på et linjeskifttegn ('\n'). Næste argument er længden af ​​bufferen, som vil tage maksimalt 5 bytes data ad gangen.

Den returnerede byte er gemt i 'antalBytes' variabel. I tilfælde af, at de modtagne data er større end bufferlængden, vil dataene blive afsluttet og vil blive sendt i den næste datastrøm.

Produktion

Konklusion

Det Serial.readBytesUntil() funktion i Arduino-programmering læser bytes fra en seriel inputstrøm, indtil der modtages et specificeret terminatortegn. Funktionen giver total læste bytes og gemmer dem i en forudsat buffer. Læs artiklen for at få flere oplysninger relateret til Serial.readBytesUntil()-funktionen.