En el PIC16F1829, FERR
refleja el estado de error de trama del byte superior en el FIFO de recepción en serie de dos bytes. Por lo tanto, asumiendo que no llegan nuevos bytes con errores de trama, dos lecturas de RCREG siempre deben borrar FERR.
Sin embargo, es posible que esté leyendo demasiado en esta Nota en la hoja de datos PIC16F1829 para el USART. La sección correspondiente es 26.1.2.4 en la página 287:
Si todos los caracteres recibidos en FIFO de recepción tienen errores de trama, las lecturas repetidas del RCREG no borrarán el bit FERR.
Este parece implica que si los dos bytes en la FIFO tenían errores de trama, FERR quedaría atascado para siempre. Esto me parece un poco improbable, pero, en el mismo punto, la hoja de datos describe cómo forzar la eliminación de FERR al restablecer el EUSART.
¿Alguien tiene alguna aclaración? Iba a contar si los bytes consecutivos daban como resultado un error de marco, pero si no tengo que hacerlo, ¡sería bueno!