请问串口指令问题

2019-07-20 21:49发布

在调试stm32f407时,通过串口助手发送“#”给串口1,串口1输出制定数据。程序一:
if((SET==USART_GetFlagStatus(USART1,USART_FLAG_RXNE))&(USART_ReceiveData(USART1)==0x23))
{
printf("asd");
}

程序二:if((SET==USART_GetFlagStatus(USART1,USART_FLAG_RXNE)))
{
if((USART_ReceiveData(USART1)==0x23))
{
printf("asd");
}
}
我实际使用时,程序二可以很好的实现串口助手输入一次“#”(即0x23),输出一次“asd”;而程序一缺会出现丢失数据状况,偶尔输入“#”确没有输出“asd”。
求问。@正点原子
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。