关于HAL库,在stm32f4上串口溢出问题。

2019-07-20 06:10发布

今天移植了原子的  ALIENTEK 阿波罗STM32F429开发板 的HAL库版串口程序,发现如果发送数量大于接收缓存就会造成串口溢出,表现为,之后PC端能正常接收到开发板发过来的信息,但是PC端发送给开发板信息无反应。各位有遇到过得嘛

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
爱因福尔
2019-07-20 13:40
HAL_UART_IRQHandler(&UART1_Handler);        //μ÷óÃHAL¿aÖD¶Ï′|àí1«óÃoˉêy
       
        timeout=0;
    while (HAL_UART_GetState(&UART1_Handler) != HAL_UART_STATE_READY)//μè′y¾íD÷
        {
         timeout++;////3¬ê±′|àí
     if(timeout>HAL_MAX_DELAY) break;               
        }
     
        timeout=0;
        while(HAL_UART_Receive_IT(&UART1_Handler, (u8 *)aRxBuffer, RXBUFFERSIZE) != HAL_OK)//ò»′Î′|àííê3éÖ®oó£¬ÖØD¿aÆôÖD¶Ï2¢éèÖÃRxXferCountÎa1
        {
         timeout++; //3¬ê±′|àí
         if(timeout>HAL_MAX_DELAY) break;       
        }
原子在程序上用了两个等待,这里不太明白,中断处理完成后,HAL_UART_IRQHandler(&UART1_Handler);        这个函数结束之后,huart.state的状态不就已经确定了吗。等待过程中会改变吗

一周热门 更多>