The UART code only receives two bytes. If a read of greater than two bytes is attempted, the code hangs on the synchronous read.