Función Serial.readBytesUntil() en la programación de Arduino

Funcion Serial Readbytesuntil En La Programacion De Arduino



Cuando se trata de programar con Arduino, hay muchas funciones que puede usar para manipular la entrada y la salida. Una función principal de Arduino es Serial.readBytesHasta() , que le permite leer datos de una secuencia hasta que se encuentra un carácter específico. Esta función ayuda a leer datos de dispositivos seriales hasta que encontremos los datos requeridos.

Este artículo compila la función Serial.readBytesUntil() en profundidad. Discutiremos qué es, cómo funciona y cubriremos el código Arduino que explica cómo usarlo en el código Arduino.

Serial.readBytesHasta()

La función Serial.readBytesUntil() es parte de la clase Arduino Serial. Esta función lee datos de un flujo hasta que encuentra un carácter específico o un número máximo de bytes. Una vez que se encuentra el carácter o el número máximo de bytes, la función deja de leer y devuelve los datos que ha leído.







La función Serial.readBytesUntil() finaliza cada vez que se cumplen las siguientes condiciones:



  • Cuando la función detecta un carácter terminador
  • Se alcanza la longitud de búfer definida
  • Se pasa el tiempo establecido o se agota el tiempo

Esta función no devuelve el carácter terminador, solo devuelve datos hasta el último carácter antes del terminador. Cuando esta función devuelve 0, significa que no se encontraron datos válidos.



Sintaxis

La función Serial.readBytesUntil() tiene la siguiente sintaxis:





De serie. leerBytesHasta ( carbonizarse terminador, carbonizarse * buffer, talla_t longitud ) ;

Parámetros

Los siguientes son los parámetros de la función Serial.readBytesUntil():

  • Personaje terminador: El carácter en el que la función dejará de leer.
  • buffer: En el búfer, los datos seriales de lectura son El tipo de datos permitido es una matriz de char o byte.
  • longitud: El número máximo de bytes para leer. El tipo de datos permitido es En t .

Devolver

El número de bytes colocados en el búfer.



Notas: En los datos de retorno, la función Serial.readBytesUntil() descarta el carácter terminador del flujo de datos.

Ejemplo de código Arduino

Siguiendo el código de Arduino, explique el uso de Serial.readBytesHasta() función:

vacío configuración ( ) {
De serie. comenzar ( 9600 ) ; // Inicializar la conexión serial con una tasa de baudios de 9600
}

vacío bucle ( ) {
búfer de bytes [ 5 ] ; // Definir una matriz de bytes para almacenar los datos entrantes
  En t númeroBytes = De serie. leerBytesHasta ( ' \norte ' , buffer, 5 ) ; // Lea los datos entrantes de la conexión en serie hasta que se encuentre un carácter de nueva línea

  si ( númeroBytes > 0 ) { // Comprobar si se leyeron bytes
De serie. imprimir ( 'Carácter recibido:' ) ;
De serie. escribir ( búfer, número de bytes ) ; // Imprime los datos recibidos al monitor serial
De serie. imprimir ( ) ;
  }
}

En la función setup(), la velocidad en baudios establecerá la comunicación en serie.

En la función loop(), primero definimos una matriz de bytes llamada 'buffer' . Esta matriz se utilizará para almacenar los datos entrantes leídos desde la conexión en serie.

A continuación, llamamos a la Serial.readBytesHasta() función, que lee los datos entrantes de la conexión en serie hasta que encuentra un carácter de nueva línea ('\ n'). El siguiente argumento es la longitud del búfer que tomará un máximo de 5 bytes de datos a la vez.

El byte devuelto se almacena en el 'numBytes' variable. En caso de que los datos recibidos sean mayores que la longitud del búfer, los datos se cancelarán y se enviarán en el siguiente flujo de datos.

Producción

Conclusión

El Serial.readBytesHasta() La función en la programación de Arduino lee bytes de un flujo de entrada en serie hasta que se recibe un carácter terminador específico. La función da el total de bytes leídos y los almacena en un búfer provisto. Lea el artículo para obtener más información relacionada con la función Serial.readBytesUntil().