串口通信的问题,求助大佬们

2019-10-15 08:05发布

while(1)
        {
                while(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)!=1);//等待接受标志位置1
                table2=USART_ReceiveData(USART2);//接受数据
                i++;
                if(table2==' ')          //遇到回车退出循环
                {
                        table2='';
                        break;
                }
        }
我的这个程序第一次进入走完一个循环后就一直卡在等待标志位置1的地方。
但是参考手册上
RXNE:读数据寄存器非空 (Read data register not empty)
当RDR移位寄存器中的数据被转移到USART_DR寄存器中,该位被硬件置位。如果
USART_CR1寄存器中的RXNEIE为1,则产生中断。对USART_DR的读操作可以将该位清
零。 RXNE位也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序。
0:数据没有收到;
1:收到数据,可以读出。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。