Serie.ReadBytesuntil -funksjon i Arduino -programmering

Serie.ReadBytesuntil -funksjon i Arduino -programmering
Når det gjelder programmering med Arduino, er det mange funksjoner som du kan bruke til å manipulere input og output. En viktig Arduino -funksjon er Serie.ReadBytesuntil (), som lar deg lese data fra en strøm til et bestemt tegn er funnet. Denne funksjonen hjelper med å lese data fra serielle enheter til vi finner de nødvendige dataene.

Denne oppskrivningen kompilerer serien.readBytesuntil () funksjon i dybden. Vi vil diskutere hva det er, hvordan det fungerer, og dekke Arduino -kode som forklarer hvordan du bruker den i Arduino -kode.

Serie.ReadBytesuntil ()

Serien.ReadBytesuntil () -funksjonen er en del av Arduino Serial Class. 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.

Serien.ReadBytesuntil () -funksjonen avsluttes når følgende forhold er oppfylt:

  • Når funksjonen oppdager et Terminator -tegn
  • Den definerte bufferlengden er nådd
  • Den angitte tiden er passert eller tider ut

Denne funksjonen returnerer ikke Terminator -tegnet, den returnerer bare data opp til det siste tegnet før Terminator. Når 0 returneres med denne funksjonen, betyr det at ingen gyldige data blir funnet.

Syntaks

Serien.ReadBytesuntil () -funksjonen har følgende syntaks:

Serie.readBytesuntil (char terminator, char* buffer, størrelse_t lengde);

Parametere

Følgende er parametrene til funksjonsserien.ReadBytesuntil ():

  • Terminator -karakter: Karakteren som funksjonen vil slutte å lese på.
  • buffer: I buffer er det lest seriedata er den tillatte datatypen er en rekke røye eller byte.
  • lengde: Maksimalt antall byte å lese. Den tillatte datatypen er int.

Komme tilbake

Antall byte som er plassert i bufferen.

Merknader: Til gjengjeld blir Terminator -tegnet kastet av funksjonsserien.ReadBytesuntil () fra datastrømmen.

Eksempel Arduino -kode

Etter Arduino -kode Forklar bruk av Serie.ReadBytesuntil () funksjon:

void setup ()
Serie.Begynn (9600); // Initialiser den serielle forbindelsen med en baudfrekvens på 9600

void loop ()
bytebuffer [5]; // definere en byte -matrise for å lagre innkommende data
int numbytes = seriell.readBytesuntil ('\ n', buffer, 5); // Les innkommende data fra den serielle tilkoblingen til det oppstår en ny linjekarakter
if (numbytes> 0) // sjekk om noen byte ble lest
Serie.print ("mottatt karakter:");
Serie.skriv (buffer, numbytes); // Skriv ut mottatte data til seriemonitoren
Serie.println ();

I Setup () -funksjonen vil Baud Rate etablere seriell kommunikasjon.

I Loop () -funksjonen definerer vi først en byte -matrise som heter 'buffer'. Denne matrisen vil bli brukt til å lagre de innkommende dataene som leses fra seriell tilkobling.

Deretter kaller vi Serie.ReadBytesuntil () Funksjon, som leser innkommende data fra seriell tilkobling til den møter et nytt linjekarakter ('\ n'). Neste argument er lengden på bufferen som maksimalt vil ta 5 byte data om gangen.

Den returnerte byte lagres i 'Numbytes' variabel. I tilfelle hvis mottatte data er større enn bufferlengden, vil dataene bli avsluttet og vil bli sendt i neste datastrøm.

Produksjon

Konklusjon

De Serie.ReadBytesuntil () Funksjon i Arduino -programmering leser byte fra en seriell inngangsstrøm inntil et spesifisert Terminator -tegn er mottatt. Funksjonen gir totale byte som leses og lagrer dem i en gitt buffer. Les artikkelen for å få mer informasjon relatert til seriell.readBytesuntil () funksjon.