Serial.readBytesUntil()
De ArduWiki
Revisión del 03:55 11 jul 2018 de Lucario448 (Discusión | contribuciones)
Contenido
Descripción
Lee caracteres desde el búfer del puerto serie, hacia el especificado. La función termina si la longitud determinada se ha leído, se ha encontrado el caracter terminador (no lo incluye en la lectura pero sí lo descarta del buffer de entrada del puerto), o el tiempo de espera (ver Serial.setTimeout()) se ha agotado.
Sintaxis
Serial.readBytesUntil(caracter, buffer, largo);
Parametros
- caracter
- el caracter terminador (char).
- buffer
- el buffer/vector/matriz para almacenar los bytes (char* o byte*).
- largo
- el número de bytes a leer (int).
Retorna
Devuelve el número de caracteres colocados en el búfer (int). Un 0 significa que no se encontró nada durante el tiempo de espera o antes del terminador.
Advertencias
- La longitud del buffer debe respetarse, de lo contrario se corre el riesgo de un "desbordamiento de buffer" que puede corromper el contenido la memoria de ejecución (SRAM).
Ejemplo
if (Serial.available()) {
buffer[Serial.readBytesUntil('\r', buffer, sizeof(buffer) - 1)] = 0; // Colocar el terminador de cadenas de caracteres
Serial.read(); // Descarta el '\n' que suele venir con el '\r'
Serial.print(F("Linea de texto leida: \""));
Serial.print(buffer);
Serial.println('\"');
}