Funcția Serial.readBytesUntil() în programarea Arduino

Functia Serial Readbytesuntil In Programarea Arduino



Când vine vorba de programare cu Arduino, există multe funcții pe care le puteți folosi pentru a manipula intrarea și ieșirea. O funcție principală a Arduino este Serial.readBytesUntil() , care vă permite să citiți date dintr-un flux până când este găsit un anumit caracter. Această funcție ajută la citirea datelor de pe dispozitivele seriale până când găsim datele necesare.

Această scriere compilează funcția Serial.readBytesUntil() în profunzime. Vom discuta despre ce este, cum funcționează și vom acoperi codul Arduino care explică cum să-l folosești în codul Arduino.

Serial.readBytesUntil()

Funcția Serial.readBytesUntil() face parte din clasa Arduino Serial. Această funcție citește date dintr-un flux până când găsește un anumit caracter sau un număr maxim de octeți. Odată găsit caracterul sau numărul maxim de octeți, funcția oprește citirea și returnează datele pe care le-a citit.







Funcția Serial.readBytesUntil() se încheie ori de câte ori sunt îndeplinite următoarele condiții:



  • Când funcția detectează un caracter de terminare
  • Lungimea tamponului definită este atinsă
  • Timpul stabilit a trecut sau Timpul expirat

Această funcție nu returnează caracterul terminator, ci doar date până la ultimul caracter înainte de terminator. Când 0 este returnat de această funcție, înseamnă că nu sunt găsite date valide.



Sintaxă

Funcția Serial.readBytesUntil() are următoarea sintaxă:





Serial. readBytesUntil ( char terminator, char * tampon, dimensiune_t lungime ) ;

Parametrii

Mai jos sunt parametrii funcției Serial.readBytesUntil():

  • Personajul Terminator: Caracterul la care funcția se va opri din citit.
  • tampon: În tampon, datele seriale citite sunt. Tipul de date permis este o matrice de caractere sau octeți.
  • lungime: Numărul maxim de octeți de citit. Tipul de date permis este int .

Întoarcere

Numărul de octeți plasați în buffer.



Note: În datele returnate, caracterul terminator este eliminat de funcția Serial.readBytesUntil() din fluxul de date.

Exemplu de cod Arduino

Urmând codul Arduino explicați utilizarea Serial.readBytesUntil() funcţie:

gol înființat ( ) {
Serial. ÎNCEPE ( 9600 ) ; // Inițializați conexiunea serială cu o viteză de transmisie de 9600
}

gol buclă ( ) {
buffer de octeți [ 5 ] ; // Definiți o matrice de octeți pentru a stoca datele primite
int numBytes = Serial. readBytesUntil ( ' \n ' , tampon, 5 ) ; // Citiți datele primite de la conexiunea serială până când este întâlnit un caracter newline

dacă ( numBytes > 0 ) { // Verificați dacă au fost citiți octeți
Serial. imprimare ( „Personaj primit:” ) ;
Serial. scrie ( tampon, numBytes ) ; // Tipăriți datele primite pe monitorul serial
Serial. println ( ) ;
}
}

În funcția setup() rata baud va stabili comunicația serială.

În funcția loop(), definim mai întâi o matrice de octeți numită 'tampon' . Această matrice va fi folosită pentru a stoca datele primite citite de la conexiunea serială.

Apoi, numim Serial.readBytesUntil() funcția, care citește datele primite de la conexiunea serială până când întâlnește un caracter de linie nouă (‘\n’). Următorul argument este lungimea memoriei tampon care va lua maximum 5 octeți de date la un moment dat.

Octetul returnat este stocat în „numBytes” variabil. În cazul în care datele primite sunt mai mari decât lungimea bufferului, datele vor fi terminate și vor fi trimise în următorul flux de date.

Ieșire

Concluzie

The Serial.readBytesUntil() funcția din programarea Arduino citește octeți dintr-un flux de intrare serial până când este primit un caracter de terminare specificat. Funcția oferă totalul de octeți citiți și îi stochează într-un buffer furnizat. Citiți articolul pentru a obține mai multe informații legate de Funcția Serial.readBytesUntil().