Цитата(AHTOXA @ Jul 29 2008, 19:29)

Потом им же засекается длительность полтора бита
В общем, как делаю я (скорость до 19200 - больше не проверял.)
0) прерывание по старт - биту. Засекли 1/2 длит. бита (в таймер)
1) прерыв по таймеру - если имеем "0" на входе RxD_2, продолжаем прием, для чего засекли длит 1 бита в таймер
2) прием информационных бит по прерыванию таймера
3) прием стоп-битов с их верификацией на лету, аналогично приему старт-бита.
4) если посылка правильная, выставляем флаг.