En série.Fonction ReadBytesUtil dans la programmation Arduino

En série.Fonction ReadBytesUtil dans la programmation Arduino
En ce qui concerne la programmation avec Arduino, il existe de nombreuses fonctions que vous pouvez utiliser pour manipuler l'entrée et la sortie. Une fonction arduino principale est En série.readBytesUnttil (), ce qui vous permet de lire les données d'un flux jusqu'à ce qu'un caractère spécifique soit trouvé. Cette fonction aide à lire les données des appareils série jusqu'à ce que nous trouvions les données requises.

Cet article compile la série.ReadBytesUntil () Fonction en profondeur. Nous discuterons de ce que c'est, comment cela fonctionne, et couvrions le code Arduino qui explique comment l'utiliser dans le code Arduino.

En série.readBytesUnttil ()

La série.La fonction readBytesUntil () fait partie de la classe de série Arduino. Cette fonction lit les données d'un flux jusqu'à ce qu'elle trouve un caractère spécifique ou un nombre maximum d'octets. Une fois le caractère ou le nombre maximum d'octets trouvés, la fonction cesse de lire et renvoie les données qu'il a lues.

La série.La fonction ReadBytesUnttil () se termine chaque fois que les conditions suivantes sont remplies:

  • Lorsque la fonction détecte un caractère terminateur
  • La longueur de tampon définie est atteinte
  • Le temps défini est passé ou des heures

Cette fonction ne renvoie pas le caractère Terminator Il ne renvoie que des données jusqu'au dernier caractère avant le terminateur. Lorsque 0 est renvoyé par cette fonction, cela signifie qu'aucune donnée valide n'est trouvée.

Syntaxe

La série.La fonction readBytesUntil () a la syntaxe suivante:

En série.readBytesUntil (char terminateur, tampon char *, longueur size_t);

Paramètres

Voici les paramètres de la série Fonction.readBytesUntil ():

  • Terminateur Caractère: Le caractère auquel la fonction cessera de lire.
  • amortir: Dans le tampon, les données série de lecture sont le type de données autorisé est un tableau de char ou d'octet.
  • longueur: Le nombre maximum d'octets à lire. Le type de données autorisé est int.

Retour

Le nombre d'octets placés dans le tampon.

Remarques: Dans les données de retour, le caractère Terminator est rejeté par la série Fonction.readBytesUntil () à partir du flux de données.

Exemple de code Arduino

Suivant le code Arduino expliquez l'utilisation de En série.readBytesUnttil () fonction:

void setup()
En série.commencer (9600); // initialise la connexion série avec un taux de bauds de 9600

VOID LOOP ()
tampon d'octet [5]; // Définissez un tableau d'octets pour stocker les données entrantes
int numbytes = série.readBytesUtil ('\ n', tampon, 5); // Lire les données entrantes de la connexion série jusqu'à ce qu'un caractère Newline soit rencontré
if (numBytes> 0) // Vérifiez si des octets ont été lus
En série.print ("Character reçu:");
En série.écrire (tampon, numbytes); // imprime les données reçues au moniteur série
En série.println ();

Dans la fonction Configuration (), le taux de bauds établira une communication série.

Dans la fonction Loop (), nous définissons d'abord un tableau d'octet appelé 'amortir'. Ce tableau sera utilisé pour stocker les données entrantes lues à partir de la connexion série.

Ensuite, nous appelons le En série.readBytesUnttil () Fonction, qui lit les données entrantes de la connexion série jusqu'à ce qu'elle rencontre un caractère Newline ('\ n'). L'argument suivant est la longueur du tampon qui prendra un maximum de 5 octets de données à la fois.

L'octet retourné est stocké dans le 'numbytes' variable. Dans le cas où les données reçues sont supérieures à la longueur du tampon, les données seront résiliées et seront envoyées dans le prochain flux de données.

Sortir

Conclusion

Le En série.readBytesUnttil () Fonction dans la programmation Arduino indique les octets d'un flux d'entrée série jusqu'à ce qu'un caractère de terminateur spécifié soit reçu. La fonction donne au total des octets lire et les stocke dans un tampon fourni. Lisez l'article pour obtenir plus d'informations liées à la série.Fonction ReadBytesUstil ().