串口试验中 if((USART_RX_STA&0x8000)==0)接收未完成,if(USART_RX_STA&0x4000)接收到了0X0d 疑问

2019-07-21 06:07发布

我感觉这个问题点好多人都还没有弄清楚,我前思后想还是想不通,所以发图片求助,为什么用if((USART_RX_STA&0x8000)==0)来判断接收数据未完成。USART_RX_STA只是前面定义的一个全局变量,并且赋值为0,这个变量和串口中断中的一些寄存器位没有任何关系,并且这个USART_RX_STA全局变量在程序中又不会变化,永远是0,USART_RX_STA&0x8000的最后得到的值也就是始终为0X0000,这个数值又怎能判断接收数据完成?这里是不是应该用这个函数USART_GetITStatus(USART1, USART_IT_RXNE),这个函数才是接收数据中断完成标志。


还有这个if(USART_RX_STA&0x4000)接收到了0X0D是什么东西?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。