Ладно, ещё раз. Твой UART передаёт в линию 0(стартовый)0010101000(0x2A код '*' младшим битом вперёд)1(стоповый), а паузы нет.
В линии получается 000101010001000101010001000101010001000101010001... Приёмник цепляет переход 10 как старт, дальше принимает белиберду. Вставь в цикл задержку 10 ms и будет щастье. Ну и UART0WriteChar() ждёт, пока передаётся байт? Если нет, надо проверять готовность. Собственно, от этого задержка тоже поможет.