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:收到数据,可以读出。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>