Si estás dentro del 1%, deberías estar bien.
Supongamos que su UART utiliza un reloj de sobremuestreo de 16x, por ejemplo, puede configurarlo en 1,843,200 Hz a 16x de sobremesa de 115,200 bps. (el sobremuestreo de este tipo es bastante común) Esto permite que el UART cuente 8 relojes en exceso desde el flanco descendente del bit de inicio, para que pueda ubicar el centro de las celdas de bit dentro de +/- un período del reloj adicional, después de que cuenta con 16 períodos del reloj para determinar cuándo muestrear datos.
Si asume que puede golpear el centro del bit de inicio, entonces para mantener el muestreo de datos en serie en las celdas de bits correctas en 8 bits de datos, la frecuencia del reloj debe permanecer entre (8-0.5) / 8 y ( 8 + 0.5) / 8, o +/- 6.25% de la tasa de bits deseada. Un mayor overclocking se acerca a la condición ideal de golpear el centro del bit de inicio, pero 8x o 16x es generalmente lo suficientemente cerca como para suponer que funcionará una falta de coincidencia del 5%.
Sin embargo, no se puede contar con que el otro lado esté perfectamente en frecuencia. Si conecta un dispositivo que es 4% rápido a un dispositivo que es 4% lento, tendrá un problema. Me he topado con al menos un caso en el que una PC se estaba ejecutando un poco lenta, y un dispositivo un poco rápido, y las dos solo podían comunicarse de forma marginal, aunque el mismo dispositivo estaba bien con otras PC, y la PC estaba bien con otras dispositivos (O-scoped estos a aproximadamente 112kbps y 119kbps) Por esa razón es bueno tratar de alcanzar la frecuencia nominal lo más cerca posible. Nunca he visto nada dentro del 2% de los problemas nominales nominales.
Lo habitual es usar una frecuencia de reloj maestra que proporcione un número entero múltiple de la frecuencia de sobre muestreo de UART deseada por la velocidad de transmisión. Por ejemplo, si desea que una CPU funcione a unos 8MHz, puede usar un oscilador de 7.3728MHz, que puede dividirse por 4 para obtener 1.8432MHz, que es exactamente 16 veces 115200.