Búfer de serie transparente de Arduino

Ammar Ali 12 octubre 2023
Búfer de serie transparente de Arduino

Este tutorial discutirá cómo borrar el búfer serial usando la función Serial.begin() en Arduino.

Búfer de serie transparente de Arduino

Cada placa Arduino viene con pines que se pueden usar para la comunicación en serie, y podemos usar estos pines para enviar y recibir datos a través de la comunicación en serie. La clase serial de Arduino tiene una función que puede leer y escribir datos en un pin serial.

Use la función leer() para leer datos de un pin serial, y los datos recibidos se almacenan dentro de un búfer antes de usarse dentro del código. El búfer tiene una memoria específica para almacenar los datos, y en caso de una gran cantidad de datos, tenemos que borrar el búfer en serie para que no se quede sin memoria.

Podemos usar la función Serial.begin() para comenzar la serie después de recibir los datos de la serie.

La función Serial.begin() se usa para inicializar la serie con la velocidad de datos dada, como 9600 bits por segundo, pero cuando inicializamos la serie, los datos previamente almacenados dentro del búfer de serie se eliminarán de la memoria.

Por ejemplo, supongamos que queremos leer una cadena a través de un pin serial y después de recibir una porción de datos, queremos borrar el búfer serial.

Podemos usar la función Serial.disponible() para verificar si los datos están disponibles en el búfer en serie y, si lo están, almacenaremos los datos en una matriz de cadenas y luego borraremos el búfer en serie usando Serial.begin() función.

Vea el código de ejemplo a continuación.

String value;
void setup() {}

void loop() {
  if (Serial.available()) {
    value = "";
    while (Serial.available()) {
      char data = Serial.read();
      value = value + data;
    }
    Serial.println(value);
    Serial.end();
    Serial.begin(9600);
  }
}

Usamos la variable valor para almacenar los datos de caracteres que recibimos de la serie. Si hay datos disponibles, los agregaremos a la matriz y finalizaremos la comunicación en serie usando la función Serial.end() y luego inicializaremos la serie para borrar el búfer en serie.

Usamos un bucle para almacenar todos los datos disponibles antes de finalizar la comunicación en serie y borrar el búfer.

Si queremos enviar datos, podemos usar la función Serial.flush() para esperar a que se transmitan todos los datos y luego podemos finalizar la comunicación en serie y borrar el búfer.

Consulte este enlace para obtener más detalles sobre el Serial y sus funciones.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - Arduino Serial