должен питаться от компа, но не питается. Тогда питание осуществляется от сигнальных линий (TXD), его недостаточно, и в плату уходит то, что пришло, по причине... Ну, дальше додумаете. В коде ошибки нет.
Скажу ещё, отсылайте из процедуры приёма не 0x54, а - 0x54^0xFF. Хоть локализуете причину.