The problem is that when you write a byte at the uart, it needs a certain time to be transmited. This time deppends on the baudrate. It's easy to calculate. For example, if you are transmiting with no parity and one stop bit, the total ammount of bits is 10 (8 from the byte, 1 start bit and 1 stop bit). If your baudrate if 9600 bps, the time per bit is 1 / 9600 = 104 micro seconds. So, the time to transmit one byte will be 10 bits * 104 us = 1.04 ms. You need to wait more than 1ms to put another char at the usart.
I never used this microcontroller that you are working with, but in the PIC family microcontroller, there's a bit on a uart SFR that indicates if the uart transmission is busy. If is the case for your microcontroller, your function sendUartdata() will look like:
void sendUartdata(void)
{
int i =0;
for(i = 0; i<16 ; i++)
{
while(BUSY_FLAG); // wait here until the tx buf be empty
SBUF = SendData;
}
}
Hope I've helped.