串口试验中 为什么(USART_RX_STA&0x80)==0就表示没接收完成数据

2019-10-14 23:31发布

为什么 (USART_RX_STA&0x80)==0表示接收数据未完成; if(USART_RX_STA&0x40)//接收到了0x0d,,,,这里接收到0x0d又是什么意思? 请问有相关的资料吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
feel
2019-10-15 18:55
回复【6楼】正点原子:
---------------------------------
如上描述
就是无法调试与仿真,用软件仿真的时候 卡在等待HSE就绪的位置那个

  /* Wait till HSE is ready and if Time out is reached exit */
  do
  {
    HSEStatus = RCC->CR & RCC_CR_HSERDY;
    StartUpCounter++;  
  } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));


硬件仿真的时候,串口中断会进入。但是发送一串字符串QWERT+回车 。
串口中断只会进入一次Res显示是第一个字符串的ASCII
后面的无效。所以在硬件仿真的情况下,USART_RX_STA无法置位0X80。
MAIN.C while 的循环串口接受完成判断标志就不起作用KK一直为0。


由于4.2的KEIL没有代码提示...编程速度慢,所以我已经升级为KEIL5.0。
调试会不会有可能和这个软件版本有关?

一周热门 更多>