¿Puedo detectar si el controlador Arduino Serial cae los bytes debido a un desbordamiento del búfer (es decir, si no estoy al día con mi flujo de entrada)? Si es así, ¿cómo?
¿Puedo detectar si el controlador Arduino Serial cae los bytes debido a un desbordamiento del búfer (es decir, si no estoy al día con mi flujo de entrada)? Si es así, ¿cómo?
Si está utilizando SoftwareSerial, creo que no tiene posibilidad de detectar un desbordamiento en serie, porque los documentos dicen que no puede usar Serial.available. Pero incluso si estuviera usando la biblioteca serial de hardware, no creo que pueda detectar si los bytes se caen. Lo más cercano que puedes hacer es usar Serial.available para ver cuándo estás a punto de sobrepasar el búfer.
Pero esto es realmente para lo que sirven el hardware y el control de flujo XON / XOFF. Cuando el controlador en serie admite esta funcionalidad, puede evitar los desbordamientos del búfer porque el host le dirá al cliente cuándo no se pueden aceptar más datos a través de la línea en serie y viceversa.
No creo que Arduino admita ningún tipo de control de flujo, especialmente porque begin () solo toma una velocidad de puerto serie como parámetro.
Con SoftwareSerial usa overflow()
para verificar el desbordamiento ...
if ( myport.overflow() ) {
// The input buffer overflowed
}
Consulte: SoftwareSerial: overflow () .