El protocolo UART, como explicó Mattias, es un protocolo asincrónico basado en el tiempo. Lo que define los límites entre los bits es el tiempo transcurrido desde el comienzo del bit de inicio. Entonces el microcontrolador "muestreará" los bits (N+half)/baudrate
segundos después de que comience el bit de inicio. El medio bit es solo para muestrear en el medio de los bits para que pueda tener una diferencia de medio bit en el tiempo entre el receptor y el transmisor (recuerde que las diferencias son acumulativas y el peor de los casos ocurre en el último bit de cada trama, que generalmente es, pero no siempre, de 8 bits de ancho, dependiendo de la configuración). La clave para que funcione es tener el receptor y el transceptor con velocidades de transmisión lo más cerca posible.
Entonces, el microcontrolador cuenta el tiempo entre cada bit para saber dónde está cada bit dentro de un marco. El siguiente personaje irá al siguiente cuadro. Cuando finaliza cada cuadro, el microcontrolador comienza a escuchar el siguiente cuadro automáticamente, por lo que cuando llega el siguiente bit de inicio ya sabe que debería comenzar un nuevo cuadro. Así se separan los personajes.
Además, agregaré que en realidad no necesita dos frecuencias para transmitir a un microcontrolador receptor de UART. Puede usar una sola frecuencia como OOK en lugar de dos frecuencias como FSK . Tiene una mayor eficiencia espectral y los circuitos son mucho más simples, ya que solo necesita un conmutador de onda portadora como transmisor y un detector de frecuencia única como receptor, más o menos como el código Morse. Recuerde usar generalmente portadores con frecuencias que son mucho más altas que la velocidad en baudios, de lo contrario los circuitos más simples no funcionarán correctamente.