请问为什么STM32串口接收大量数据时会等不到RXNE标志

2019-07-14 14:55发布

   while(1)
    {
       UartState = HAL_UART_Receive(&huart1,(uint8_t*)&RxData,1,1);
       if(UartState == HAL_tiMEOUT)
       {
          break;
       }
      push_char(ldc_parser,RxData);
    }


长时间向串口发送数据后,进不了push_char函数了,就是一直接收超时,但是串口确实一直在发送数据;波特率为115200

debug看,是一直在这个循环里面,timeout了
    while(__HAL_UART_GET_FLAG(huart, Flag) == RESET)
    {
      /* Check for the Timeout */
      if(Timeout != HAL_MAX_DELAY)
      {
        if((Timeout == 0)||((HAL_GetTick() - tickstart ) > Timeout))
        {
         }
       }
     }

请问各位有遇到过这种情况的吗?还请多多指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。