Questa funzione terminerà se la lunghezza definita dei caratteri è stata letta o se il timeout (seriale.setTimeout ()). Se restituisce 0 ciò significa che non sono disponibili dati validi.
Sintassi
Di seguito è riportata la sintassi del seriale.Funzione ReadBytes ():
Seriale.ReadBytes (buffer, lunghezza)
Parametri
respingente: L'array buffer per archiviare i byte ricevuti. I tipi di dati consentiti sono array o byte.
lunghezza: Questo si riferisce al numero specifico di byte che dovrebbero essere recuperati dal tampone seriale. Il tipo di dati consentito è int.
ritorna
Il numero di byte letti dal buffer seriale.
Codice di esempio
Il seguente codice spiega l'uso del seriale.funzione readbytes () in arduino.
const int buffer_size = 50;
char buf [buffer_size];
void setup ()
Seriale.Inizia (9600);
Seriale.setTimeout (5000); // Imposta il periodo di timeout su 5000 millisecondi (5 secondi)
void loop ()
// attendi i dati in arrivo
mentre (seriale.disponibile () == 0)
// fare niente
// Leggi i byte in arrivo:
int rlen = seriale.ReadBytes (buf, buffer_size);
// stampa i dati ricevuti
Seriale.print ("Ho ricevuto:");
per (int i = 0; i < rlen; i++)
Seriale.print (buf [i]);
Nel codice sopra la funzione setup () imposta il periodo di timeout a 5 secondi utilizzando Seriale.SetTimeout (5000).
Nella funzione Loop (), il programma entra in un ciclo while che attende i dati in arrivo controllando se Seriale.disponibile() è maggiore di 0. Questo mentre loop garantisce che il programma attende fino a quando i dati sono disponibili prima di tentare di leggerli e uscirà non appena i dati verranno ricevuti.
Una volta rilevati i dati in arrivo, il programma legge i byte utilizzando seriale.readbytes () e li memorizza nel buf vettore. I dati ricevuti vengono quindi stampati sul monitor seriale utilizzando un ciclo per iterali sull'array BUF.
Produzione
Qui in output, possiamo vedere il numero di byte letto dalla funzione.
Conclusione
Il seriale.ReadBytes () è una funzione in Arduino che consente la lettura di un numero specificato di byte dal buffer seriale e salvandoli in un buffer di array. Fornisce byte di lettura totale o -1 se non sono disponibili dati e restituiscono 0 se non è presente alcun input valido. Questa funzione è comunemente utilizzata nei programmi Arduino che richiedono comunicazione con dispositivi esterni su una connessione seriale.