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))
{
}
}
}
请问各位有遇到过这种情况的吗?还请多多指教
那个接收超时判断在HAL里已经执行了。
楼主在这里又运行:
if(UartState == HAL_TIMEOUT)
{
break;
}
由于break了,当然无法执行下一句: push_char(ldc_parser,RxData);
一周热门 更多>