在通过CLI自动配置 并开启雷达后
调用了以下函数:
CLI_close(); Task_Params taskParams; Task_Params_init(&taskParams); taskParams.priority = 3; taskParams.stackSize = 1024; Task_create(UART_Send_Task, &taskParams, NULL);
以此来关闭CLI 并且打开一个新的线程用于串口数据输出
进入线程后 先将串口进行close再打开
UART_close(gMmwMssMCB.commandUartHandle); UART_Params uartParams; UART_Params_init(&uartParams); uartParams.clockFrequency = gMmwMssMCB.cfg.sysClockFrequency; uartParams.baudRate = gMmwMssMCB.cfg.commandBaudRate; uartParams.isPinMuxDone = 1U; /* Open the UART Instance */ gMmwMssMCB.commandUartHandle = UART_open(0, &uartParams); if (gMmwMssMCB.commandUartHandle == NULL) { System_printf("Error: MMWDemoMSS Unable to open the Command UART Instance\n"); return; }
在该线程中 每帧完成后 会进行串口发送 每次都发送以下四个字节
data[0]=0x0D;data[1]=0x0A;data[2]=0x12;data[3]=0x34; UART_write (gMmwMssMCB.commandUartHandle,(uint8_t*)&data[0],4);
但是实际接收到的却是:
0D 0A 0D 12 34
经过多次调试发现 只要发出的数据中含有0x0A 则一定会出现数据错误
请问如何解决