原因:
USART_SendData(USARTx, *ucTxBuf++);
while (USART_GetFlagStatus(USARTx, USART_FLAG_TXDE) == RESET);
串口初始化后,USART_FLAG_TXC被置1,可使用USART_ClrFlag(USARTx, USART_FLAG_TXC) 清除USART_FLAG_TXC位,或者使用USART_FLAG_TXDE标志进行判断。
//USART_ClrFlag(USARTx, USART_FLAG_TXC);
USART_SendData(USARTx, *ucTxBuf++;
while (USART_GetFlagStatus(USARTx, USART_FLAG_TXDE) == RESET);