提交 27b7e0d9 编写于 作者: 任光伟 提交者: rgw5267

解决在判断接收字节为0与RESET信号量之间接收到数据时,导致此次数据无法被处理的bug。

Signed-off-by: rgw5267's avatarRGW <rgw5267@gmail.com>
上级 dd23a367
......@@ -434,18 +434,20 @@ static rt_err_t at_client_getchar(at_client_t client, char *ch, rt_int32_t timeo
{
rt_err_t result = RT_EOK;
while (rt_device_read(client->device, 0, ch, 1) == 0)
__retry:
result = rt_sem_take(client->rx_notice, rt_tick_from_millisecond(timeout));
if (result != RT_EOK)
{
rt_sem_control(client->rx_notice, RT_IPC_CMD_RESET, RT_NULL);
result = rt_sem_take(client->rx_notice, rt_tick_from_millisecond(timeout));
if (result != RT_EOK)
{
return result;
}
return result;
}
if(rt_device_read(client->device, 0, ch, 1) == 1)
{
return RT_EOK;
}
else
{
goto __retry;
}
return RT_EOK;
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册