IWR6843AOP: 串口接收数据不完整,无法接收\n后的数据

Part Number: IWR6843AOP

IWR6843AOP芯片的串口使用Uart_read()函数接收多行数据时,只能接收到第一行数据,无法接收到后续的数据。

从mmwave_sdk_03_06_02_00-LTS中查看static void UartSci_ISR (uintptr_t arg)中,在接收到"\n"字符时,调用SemaphoreP_postFromISR (ptrUartSciDriver->readSem)会退出串口读取的阻塞模式,造成“\n”后面的数据读取不到,请问如何获取多行数据(多个\r\n)和不含“\n”的任意长度的数据,如何判断数据接收完毕?

  • 你好,

    建议参考cli的相关代码,我们配置文件就是从窗口下发到芯片上的。

    Thanks,

    Chris

  • 谢谢您的回复

    cli串口接收也是单行发送,gui发送一行,cli解析后,再发下一行数据。

    如果将两行命令一起下发至cli,解析时只能解析第一行命令(0x0A前面的数据)。因为在Uart_read()函数中,收到“\n”时,会将readSize置0,抛出readSem,就会解除阻塞状态,而不会收第二行的数据。

    我现在需要使用6843发送AT指令,接收的AT指令是分多行数据返回的,只能接收第一行数据,后面的数据无法接收。

  • 你好,

    这个都是软件的处理,你可以自行修改,以满足你的需求。

    Thanks,

    Chris