不知道您的函數USART_SendData實體是怎樣,另外Buffer不可只有一字元,按下Enter的新行/換行也算控制字元(char)
1. 您應該要有一個選定長度的Buffer負責接收到的資料,然後等接收完畢後才能轉送回去
2. 因此應該增加如下
u8 UART_RX_BUF[UART_REC_LEN]; //接收缓冲,最大UART_REC_LEN个字节.
3. 在IRQ中讀取並儲存所有輸入的字元,並判斷結尾的換行/新行字元
4. 然後在main中最後的迴圈While(1)輸出字元
while((UART1->CSR&UART_IT_TXIEN)==0);//等待发送结束
UART1->TDR=UART_RX_BUF[t];
這寫法好像都很制式化了,您可以參考到一堆範例以上供參考