Browse Source

解决串口未知数据慢的问题:错误超时时间调整为1.5秒;串口读取线程延时取消;crc校验不完整时等待,靠超时逻辑兜底

master
Lizongdi 5 days ago
parent
commit
b9513e5291
  1. 3
      RBcore/client_setting.c
  2. 2
      RBcore/drv_interface.c

3
RBcore/client_setting.c

@ -51,7 +51,6 @@ static PV_struct_define decoded_PV = { 0 };
*----------------------------------------------*/
int check_PV(char *_pBuffer, uint32_t _iSize)
{
if (_iSize < 4) return -1;
if (_pBuffer[0] != 0x55) return -1;
if (_pBuffer[1] != 0x55) return -1;
@ -63,7 +62,7 @@ int check_PV(char *_pBuffer, uint32_t _iSize)
}
else
{
return -1;
return 0;
}
}

2
RBcore/drv_interface.c

@ -241,7 +241,6 @@ void Read_PV(void *argument)
while(1)
{
rd_ComRead(g_ptlpuart, pcBuffer, 64);
Rd_Delay(10);
}
}
@ -291,6 +290,7 @@ void Drv_InterfaceInit(void)
TUartUserData *ptUartUserData = UART_userdata_init(0, -1, 512);
g_ptlpuart = rd_ComCreate(check_PV, decode_PV, LPUART_PV_Send, ptUartUserData->m_buf_size, ptUartUserData);
UART_IT_init(g_ptlpuart);
rd_ComSetRecvTime(g_ptlpuart, 1500);// PV平均一到两秒发一条,这里超时时间设置为1.5秒
const osThreadAttr_t Read_PV_attributes = {
.name = "Read_PV",

Loading…
Cancel
Save