PC机每隔100ms给协调器发送28字节的数据,协调器接收后,回显。
过一段时间后,会提示:HAL_UART_RX_FULL,而且发送的数据也不是完整的28个字节。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
PC机每隔100ms给协调器发送28字节的数据,协调器接收后,回显。
过一段时间后,会提示:HAL_UART_RX_FULL,而且发送的数据也不是完整的28个字节。
你好,我自己写了一个测试正常如下:
void AF_Uart_config(void)
{
halUARTCfg_t uartConfig;
uartConfig.configured = TRUE;
uartConfig.baudRate = HAL_UART_BR_9600;
uartConfig.flowControl = FALSE;
uartConfig.flowControlThreshold = 32;
uartConfig.rx.maxBufSize = 64;
uartConfig.tx.maxBufSize = 64;
uartConfig.idleTimeout = 6;
uartConfig.intEnable = TRUE;
uartConfig.callBackFunc = AF_Uart_Callback;
HalUARTOpen (HAL_UART_PORT_0, &uartConfig);
}
void AF_Uart_Callback( uint8 port, uint8 event )
{
uint16 data_len;
uint8 *uart_data;
if(event & (HAL_UART_RX_FULL|HAL_UART_RX_ABOUT_FULL|HAL_UART_RX_TIMEOUT))
{
data_len=Hal_UART_RxBufLen(HAL_UART_PORT_0);
uart_data=osal_mem_alloc(data_len);
if ( uart_data != NULL )
{
HalUARTRead(HAL_UART_PORT_0,uart_data,data_len);
HalUARTWrite(HAL_UART_PORT_0,uart_data,data_len);
data_len=0;
}
osal_mem_free( uart_data );
}
}