Вам необходимо проверить UART1_Data_Ready для каждого символа и поместить прием символов в цикл, который заканчивается, когда вы нажимаете «.». Кроме того, вам нужно вывести strcpy из цикла, чтобы не писать поверх выходной строки для каждого символа.
РЕДАКТИРОВАНИЕ: заменено strcat, поскольку обе переменные должны быть строками.
Я также добавил эхо, чтобы убедиться, что программа правильно получает символ из UART.
strcpy(txt,"name ");
while (1)
{
while(!UART1_Data_Ready());
name = UART1_Read();
if (name!='.')
{
char i;
UART1_Write(name);
i = strlen(txt);
txt[i] = name; // add char to end of string
txt[i+1] = '\0'; // add zero to terminate new string
Lcd_Out(1,1, txt);
Delay_ms(1);
}
else
{
UART1_Write(13); // cr
UART1_Write(10); // lf
break;
}