Serial.readBytesUntil()-funksjon i Arduino-programmering

Serial Readbytesuntil Funksjon I Arduino Programmering



Når det kommer til programmering med Arduino, er det mange funksjoner du kan bruke til å manipulere input og output. En hovedfunksjon i Arduino er Serial.readBytesUntil() , som lar deg lese data fra en strøm til et spesifikt tegn blir funnet. Denne funksjonen hjelper med å lese data fra serielle enheter til vi finner de nødvendige dataene.

Denne oppskrivningen kompilerer Serial.readBytesUntil()-funksjonen i dybden. Vi vil diskutere hva det er, hvordan det fungerer, og dekke Arduino-kode som forklarer hvordan du bruker det i Arduino-kode.

Serial.readBytesUntil()

Serial.readBytesUntil()-funksjonen er en del av Arduino Serial-klassen. Denne funksjonen leser data fra en strøm til den finner et spesifikt tegn eller et maksimalt antall byte. Når tegnet eller maksimalt antall byte er funnet, slutter funksjonen å lese og returnerer dataene den har lest.







Serial.readBytesUntil()-funksjonen avsluttes når følgende betingelser er oppfylt:



  • Når funksjonen oppdager et terminatortegn
  • Den definerte bufferlengden er nådd
  • Den innstilte tiden er passert eller Time out

Denne funksjonen returnerer ikke terminatortegnet, den returnerer bare data opp til det siste tegnet før terminatoren. Når 0 returneres av denne funksjonen betyr det at ingen gyldige data ble funnet.



Syntaks

Serial.readBytesUntil()-funksjonen har følgende syntaks:





Seriell. readBytesUntil ( røye terminator, røye * buffer, størrelse_t lengde ) ;

Parametere

Følgende er parametrene til funksjonen Serial.readBytesUntil():

  • Terminator-karakter: Tegnet som funksjonen slutter å lese på.
  • buffer: I buffer er de leste seriedata. Den tillatte datatypen er en rekke tegn eller byte.
  • lengde: Maksimalt antall byte å lese. Den tillatte datatypen er int .

Komme tilbake

Antall byte plassert i bufferen.



Merknader: I returdata blir terminatortegnet forkastet av funksjonen Serial.readBytesUntil() fra datastrømmen.

Eksempel Arduino-kode

Følgende Arduino-kode forklarer bruk av Serial.readBytesUntil() funksjon:

tomrom oppsett ( ) {
Seriell. begynne ( 9600 ) ; // Initialiser den serielle forbindelsen med en overføringshastighet på 9600
}

tomrom Løkke ( ) {
byte buffer [ 5 ] ; // Definer en byte-array for å lagre innkommende data
int antallBytes = Seriell. readBytesUntil ( ' \n ' , buffer, 5 ) ; // Les innkommende data fra den serielle tilkoblingen til et nylinjetegn oppstår

hvis ( antallBytes > 0 ) { // Sjekk om noen byte ble lest
Seriell. skrive ut ( 'Mottatt karakter: ' ) ;
Seriell. skrive ( buffer, antallBytes ) ; // Skriv ut de mottatte dataene til den serielle monitoren
Seriell. println ( ) ;
}
}

I funksjonen setup() vil baud rate etablere seriell kommunikasjon.

I loop()-funksjonen definerer vi først en byte-array kalt 'buffer' . Denne matrisen vil bli brukt til å lagre innkommende data som leses fra den serielle forbindelsen.

Deretter kaller vi Serial.readBytesUntil() funksjon, som leser innkommende data fra den serielle forbindelsen til den møter et linjeskifttegn ('\n'). Neste argument er lengden på bufferen som vil ta maksimalt 5 byte med data om gangen.

Den returnerte byten lagres i 'antallBytes' variabel. Hvis de mottatte dataene er større enn bufferlengden, vil dataene bli avsluttet og sendt i neste datastrøm.

Produksjon

Konklusjon

De Serial.readBytesUntil() funksjon i Arduino-programmering leser byte fra en seriell inngangsstrøm til et spesifisert terminatortegn mottas. Funksjonen gir totale byte lest og lagrer dem i en gitt buffer. Les artikkelen for å få mer informasjon relatert til Serial.readBytesUntil()-funksjonen.