Hi,
For usart module, it can transmit or receive only ONE byte, pls refer to the usart data registers:

So the Usart will trigger interrupt after it has received/transmitted a Byte.
I see that your data is half word(16 bits), I think you can transfer the half word(temperature variable) with two byte.
uint16_t temperature;
char byte_L, byte_H;
void halfWord(uint16_t var)
{
byte_L=(char)(var&0xFF);
byte_H=(char)((var>>8)&0xFF);
UART_SendByte(LPC_UART3,byte_L);
UART_SendByte(LPC_UART3,byte_H);
UART_SendByte(LPC_UART3,0xFF);
UART_SendByte(LPC_UART3,0xFF);
}
I suggest you delete the line uint8_t len=sprintf((char*)buffStr,"Hello.Temp is %u\n %u\n",temp, data1);
You can transfer data directly. The 0xFFFF is a separator or mark so that the receiver know which is high byte which is low byte.
Hope it can help you
BR
XiangJun Rong