Estoy aprendiendo programación integrada (no soy ingeniero eléctrico). Lo siento si este no es el lugar correcto o estoy haciendo esta pregunta incorrectamente, pero me fue muy difícil tratar de encontrar una solución. Estoy usando un ATMega32 con un módulo GPS y un LCD de 16x2. Solo quiero leer una oración NMEA sobre UART y enviar los datos analizados a la pantalla LCD. Leí la oración en un búfer y luego la escupí en la pantalla. Pero a veces obtengo datos inconsistentes ... El GPS está siempre encendido y el AVR se enciende en el medio y espera el inicio de una oración y luego continúa recibiendo.
Mi pregunta es: ¿cómo se pueden sincronizar dos dispositivos si uno está siempre enviando (el GPS envía datos a una velocidad de 1 Hz) y el otro recibe en forma aleatoria? ¿Cómo se logra la sincronización UART? Sé de los bits de inicio y detención, pero una vez que UART recibe un paquete defectuoso (por ejemplo, genera un error de trama), ¿cómo puede recuperarse y sincronizarse?
explique también qué sucede a nivel de hardware o, si puede, indíqueme un recurso en línea, no puedo encontrar lo que estoy buscando.
¡Muchas gracias!
Luca