将定向打印函数添加一句 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_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);
}
举报