Fonction Serial.readBytesUntil() dans la programmation Arduino

Fonction Serial Readbytesuntil Dans La Programmation Arduino



En ce qui concerne la programmation avec Arduino, il existe de nombreuses fonctions que vous pouvez utiliser pour manipuler les entrées et les sorties. Une fonction principale d'Arduino est Serial.readBytesUntil() , qui vous permet de lire les données d'un flux jusqu'à ce qu'un caractère spécifique soit trouvé. Cette fonction permet de lire les données des périphériques série jusqu'à ce que nous trouvions les données requises.

Cette écriture compile la fonction Serial.readBytesUntil() en profondeur. Nous discuterons de ce que c'est, de son fonctionnement et couvrirons le code Arduino qui explique comment l'utiliser dans le code Arduino.

Serial.readBytesUntil()

La fonction Serial.readBytesUntil() fait partie de la classe Arduino Serial. 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é, la fonction arrête la lecture et renvoie les données qu'elle a lues.







La fonction Serial.readBytesUntil() se termine lorsque les conditions suivantes sont remplies :



  • Lorsque la fonction détecte un caractère de fin
  • La longueur de tampon définie est atteinte
  • L'heure réglée est dépassée ou Time out

Cette fonction ne renvoie pas le caractère de fin, elle renvoie uniquement les données jusqu'au dernier caractère avant le caractère de fin. Lorsque 0 est renvoyé par cette fonction, cela signifie qu'aucune donnée valide n'a été trouvée.



Syntaxe

La fonction Serial.readBytesUntil() a la syntaxe suivante :





En série. readBytesJusqu'à ( carboniser terminateur, carboniser * amortir, taille_t longueur ) ;

Paramètres

Voici les paramètres de la fonction Serial.readBytesUntil() :

  • Caractère de terminaison : Le caractère auquel la fonction s'arrêtera de lire.
  • amortir: Dans le tampon, les données série lues sont Le type de données autorisé est un tableau de caractères ou d'octets.
  • longueur: Le nombre maximum d'octets à lire. Le type de données autorisé est entier .

Retour

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



Remarques: Dans les données de retour, le caractère de fin est supprimé par la fonction Serial.readBytesUntil() du flux de données.

Exemple de code Arduino

Le code Arduino suivant explique l'utilisation de Serial.readBytesUntil() fonction:

annuler installation ( ) {
En série. commencer ( 9600 ) ; // Initialise la connexion série avec un débit en bauds de 9600
}

annuler boucle ( ) {
tampon d'octets [ 5 ] ; // Définit un tableau d'octets pour stocker les données entrantes
entier nombreOctets = En série. readBytesJusqu'à ( ' \n ' , amortir, 5 ) ; // Lit les données entrantes de la connexion série jusqu'à ce qu'un caractère de saut de ligne soit rencontré

si ( nombreOctets > 0 ) { // Vérifie si des octets ont été lus
En série. imprimer ( 'Caractère reçu :' ) ;
En série. écrire ( mémoire tampon, nombre d'octets ) ; // Imprimer les données reçues sur le moniteur série
En série. println ( ) ;
}
}

Dans la fonction setup(), le débit en bauds établira la communication série.

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

Ensuite, nous appelons le Serial.readBytesUntil() fonction, qui lit les données entrantes de la connexion série jusqu'à ce qu'elle rencontre un caractère de nouvelle ligne ('\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 'nombre d'octets' variable. Dans le cas où les données reçues sont supérieures à la longueur de la mémoire tampon, les données seront terminées et seront envoyées dans le flux de données suivant.

Sortir

Conclusion

Le Serial.readBytesUntil() La fonction dans la programmation Arduino lit les octets d'un flux d'entrée série jusqu'à ce qu'un caractère de terminaison spécifié soit reçu. La fonction donne le nombre total d'octets lus et les stocke dans un tampon fourni. Lisez l'article pour obtenir plus d'informations sur la fonction Serial.readBytesUntil().