Цитата(Сергей1 @ Feb 13 2008, 21:13)

static void UART0_tx()
{
tx_byt=U0RBR;
while(U0LSR_bit.DR==0);
UART0send_byte(tx_byt);
}
Если это обработчик прерывания то он как миниму должен быть объявлен как __irq
Еще неплохо бы проверять в обработчике флаги уарта что символ действительно приянт!
И к тому же если фифо разрешено то может быть принято несколько символов.
Так же ожидать в обработчике прерывания освобождения UART на отправку не очень хорошо.
Попробуйте для начало все релаизовать без прерываний. (полингом) тем более что есть аппаратный FIFO