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:
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 ():
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.