Цитата(dimka76 @ Jul 4 2009, 16:33)

RS232 допускает 5% ошибки.
Во-первых, не RS232, а UART. Ведь RS232 всего лишь оговаривает величины напряжений сигналов и т.п., но ничего не говорит о длительностях.
Обычный UART, принимающий посылку, высланную с идеально правильной бодовой скоростью, настраивается на прием по старт-биту. По падающему фронту старт-бита он выставляет фазу своего тактового генератора. Обычно он это делает с точностью примерно 1/16 от длительности бит-интервала. Затем он самплирует приходящие данные один или три раза в середине каждого своего бит-интервала. На последнем, 9-м или 10-м по счету от старт-бита, середина его собственного интервала будет заметно не совпадать со серединой пришедшего интервала. При 5% на 10-м бит-интервале ошибка составит 50%, что будет на грани работоспособности при прочих идеальных условиях. Однако учитывая неидеальность настройки начальной фазы, а также искажения фронтов сигналов в тракте передачи, 5% рассогласование бодовой скорости приемника и передатчика вполне может привести к неработоспособности связи.
Учитывая, что передатчик тоже может иметь неидеальную бодовую скорость, точность настройки должна быть лучше, чем половина от 5%. Обычно стараются выдержать погрешность не более 2%.