将定向打印函数添加一句 USART_ClearFlag(USART1,USART_FLAG_TC); 可以解决丢失第一个数据的问题,代码改成下面
int fputc(int ch, FILE *f)
{USART_ClearFlag(USART1,USART_FLAG_TC);
USART_SendData(USART1, (uint8_t) ch);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
return (ch);
}
本文介绍了一种通过在USART发送函数中加入USART_ClearFlag(USART1,USART_FLAG_TC)来解决UART通信中首字丢失问题的方法。修改后的代码确保了数据的完整传输。
419





