Serie.ReadBytes fungerer i Arduino

Serie.ReadBytes fungerer i Arduino
Serie.ReadBytes () er en funksjon i Arduino som muliggjør lesing av et spesifisert antall byte fra seriebufferen og lagrer dem i en matrisebuffer. Denne funksjonen kan brukes til å lese binære data, for eksempel sensoravlesninger, fra en ekstern enhet koblet til Arduino -styret.

Denne funksjonen avsluttes hvis den definerte lengden på tegn er lest eller hvis time -out (seriell.setTimeout ()). Hvis den returnerer 0, betyr det at ingen gyldige data er tilgjengelige.

Syntaks
Følgende er syntaksen til serien.ReadBytes () Funksjon:

Serie.ReadBytes (buffer, lengde)

Parametere

buffer: Buffergruppen for å lagre de mottatte bytene. De tillatte datatypene er char -matrise eller byte.

lengde: Dette refererer til det spesifikke antallet byte som bør hentes fra seriebufferen. Den tillatte datatypen er int.

Returnerer

Antall byte lest fra seriebufferen.

Eksempelkode

Følgende kode forklarer bruken av serien.ReadBytes () -funksjonen i Arduino.

const int buffer_size = 50;
char buf [buffer_size];
void setup ()
Serie.Begynn (9600);
Serie.setTimeout (5000); // Angi tidsperioden til 5000 millisekunder (5 sekunder)

void loop ()
// Vent på innkommende data
mens (seriell.tilgjengelig () == 0)
// gjør ingenting

// Les innkommende byte:
int rlen = seriell.readbytes (buf, buffer_size);
// Skriver ut mottatte data
Serie.trykk ("Jeg mottok:");
for (int i = 0; i < rlen; i++)
Serie.print (buf [i]);

I ovennevnte kode angir oppsett () -funksjonen tidsavbruddsperioden til 5 sekunder ved hjelp av Serie.setTimeout (5000).

I Loop () -funksjonen kommer programmet inn en stundsløyfe som venter på innkommende data ved å sjekke om Serie.tilgjengelig() er større enn 0. Dette mens Loop sikrer at programmet venter til data er tilgjengelig før det prøver å lese det, og det vil avslutte så snart data er mottatt.

Når innkommende data er oppdaget, leser programmet byte ved hjelp av serie.ReadBytes () og lagrer dem i buf Array. De mottatte dataene skrives deretter ut til seriemonitoren ved hjelp av en for loop som itererer over BUF -arrayen.

Produksjon
Her i output kan vi se antall byte lest etter funksjonen.

Konklusjon

Serien.ReadBytes () er en funksjon i Arduino som muliggjør lesing av et spesifisert antall byte fra seriebufferen og lagrer dem i en matrisebuffer. Det gir total leste byte, eller -1 hvis ingen data er tilgjengelige og returnerer 0 hvis ingen gyldige innspill er der. Denne funksjonen brukes ofte i Arduino -programmer som krever kommunikasjon med eksterne enheter over en seriell tilkobling.