Seriale.Funzione ReadBytesUnuntil nella programmazione Arduino

Seriale.Funzione ReadBytesUnuntil nella programmazione Arduino
Quando si tratta di programmare con Arduino, ci sono molte funzioni che è possibile utilizzare per manipolare l'input e l'output. Una funzione arduino principale è Seriale.ReadBytesUnTil (), che consente di leggere i dati da un flusso fino a quando non viene trovato un carattere specifico. Questa funzione aiuta a leggere i dati dai dispositivi seriali fino a quando non troviamo i dati richiesti.

Questo articolo compila il seriale.readBytesUntIl () Funzione in profondità. Discuteremo di cosa sia, come funziona e copriremo il codice Arduino che spiega come usarlo nel codice Arduino.

Seriale.ReadBytesUnTil ()

Il seriale.La funzione ReadBytesUntIl () fa parte della classe seriale Arduino. Questa funzione legge i dati da un flusso fino a quando non trova un carattere specifico o un numero massimo di byte. Una volta trovato il carattere o il numero massimo di byte, la funzione interrompe la lettura e restituisce i dati che ha letto.

Il seriale.La funzione ReadBytesUnTil () termina ogni volta che vengono soddisfatte le seguenti condizioni:

  • Quando la funzione rileva un carattere di terminatori
  • Viene raggiunta la lunghezza del tampone definita
  • Il tempo impostato viene passato o time

Questa funzione non restituisce il carattere Terminator restituisce solo i dati fino all'ultimo carattere prima del terminatori. Quando 0 viene restituito da questa funzione significa che non vengono trovati dati validi.

Sintassi

Il seriale.La funzione ReadBytesUnTil () ha la seguente sintassi:

Seriale.ReadBytesUntil (char terminatore, char* buffer, size_t lunghezza);

Parametri

Di seguito sono riportati i parametri della funzione seriale.readBytesUnTil ():

  • Carattere Terminator: Il personaggio a cui la funzione smetterà di leggere.
  • respingente: In buffer i dati seriali di lettura è il tipo di dati consentito è una matrice di carbone o byte.
  • lunghezza: Il numero massimo di byte da leggere. Il tipo di dati consentito è int.

Ritorno

Il numero di byte inseriti nel buffer.

Appunti: In restituzione dati il ​​carattere Terminator viene scartato dal seriale funzione.ReadByteSUnTil () dal flusso di dati.

Esempio di codice Arduino

Seguendo il codice Arduino, spiega l'uso di Seriale.ReadBytesUnTil () funzione:

void setup ()
Seriale.Inizia (9600); // Inizializza la connessione seriale con un tasso di baud di 9600

void loop ()
tampone byte [5]; // Definire un array di byte per archiviare i dati in arrivo
int numBytes = seriale.ReadBytesUntil ('\ n', buffer, 5); // Leggi i dati in arrivo dalla connessione seriale fino a quando non si incontra un carattere di nuova linea
if (numbytes> 0) // controlla se sono stati letti byte
Seriale.stampa ("carattere ricevuto:");
Seriale.scrivere (buffer, numbytes); // stampa i dati ricevuti sul monitor seriale
Seriale.println ();

Nella funzione di setup () baud il taud di baud stabilirà la comunicazione seriale.

Nella funzione Loop (), definiamo prima un array di byte chiamato 'respingente'. Questo array verrà utilizzato per archiviare i dati in arrivo lettura dalla connessione seriale.

Successivamente, chiamiamo il Seriale.ReadBytesUnTil () funzione, che legge i dati in arrivo dalla connessione seriale fino a quando non incontra un carattere di nuova linea ('\ n'). Il prossimo argomento è la lunghezza del buffer che richiederà un massimo di 5 byte di dati alla volta.

Il byte restituito è conservato in 'Numbytes' variabile. Nel caso in cui i dati ricevuti siano maggiori della lunghezza del buffer, i dati verranno terminati e verranno inviati nel flusso di dati successivo.

Produzione

Conclusione

IL Seriale.ReadBytesUnTil () La funzione nella programmazione Arduino legge byte da un flusso di input seriale fino a quando non viene ricevuta una caratteristica del Terminator specificato. La funzione fornisce byte totali lettura e li memorizza in un buffer fornito. Leggi l'articolo per ottenere ulteriori informazioni relative al seriale.funzione readBytesUnTil ().