你好,
我使用UART1接受传感器,该传感器接受可变长度的命令(22到28个字节)。响应于这些命令,传感器确认并附加可变长度(27到40字节)的有效载荷响应。我正在使用UART_DATA_READY_GETF.读取直到数据可用。读取长度始终为16字节。当我在COM端口上单独检查传感器响应时,这不是这种情况。传感器每次发送27个字节(验证)(验证),在连接到UART1时读取固定的16个字节。我有附加调试信息PDF。我陷入了很大一段时间的问题。如何解决此问题以在UART1上实现灵活的接收?
注意:UART2是调试UART
int count = 0;uint8_t rx_buff [50];printf_string(UART2,“\ n \ r <=”);而(UART_DATA_READY_GETF(UART1)== 1){UINT8_T BUFFER [1];//临时Rx元素变量UART_RECEIVE(UART1,(UINT8_T *)缓冲区,1,UART_OP_BLOCKING);rx_buff [count] =缓冲器[0];count ++;for(int i = 0; i
关键词:
设备:
嗨eShwar,
请你探讨UART TX和RX吗?您是否使用了任何可用的睡眠模式?此外,您可以在调试模式下运行项目吗?它是否正确运行?
谢谢,PM_DIALOG.
你好,
我已经验证了传感器正在通信井,而TX帧则从DA14531正确到达传感器。我还通过普通UART通信检查传感器。(附件)
Tx Len:28个字节
rx len 27字节
我不使用任何睡眠模式,我的应用程序基于empty_peripheral_template。我尝试了强制rx读取27长,但程序崩溃在nmi_handler.c。
如果我评论WDOG宏,仍然是接收长度为16字节
还可以从UART阅读超过16个字节?
嗨eShwar,
请尝试增加UART_RECEIVE()中的长度参数。
谢谢,PM_DIALOG.
你好,
在增加UART_RECEIVE()中的长度参数后,程序会停止nmi_handler.c.我猜这是因为当没有27个字节来读取来自RX FIFO时,我试图强制读取27个字节。您是否可以为UART读取(> 16字节)重现此问题,以确保不得发生这种情况?
嗨eShwar,
您是否可以检查WDOD是否已启用或禁用?checkout使用UART API的SDK的UART示例。您使用的是哪个SDK示例?
谢谢,PM_DIALOG.
你好,
默认情况下启用WDOD。当我禁用它时,Rx字节仍然是16。我可以用以下代码读取16个字节,但不是在计数> 17时
这依恋显示一个力读取时的错误count = 17.(禁用WDOD)。我正在使用SDK 6.14,并且该示例是从相同的SDK引用API。我仍然无法阅读超过16个字节
我编译并使用传感器运行DSPS_DEVICE源代码。它有效,RX长度为27,按预期正确序列,但这也是API的预期。
你能在你最后重新创建这个问题吗?如果需要,我可以共享我的完整源代码
你好,
提供额外的调试信息。这是出现异常的地方
嗨eShwar,
我看到你的代码卡在platform_reset_func()中被困。您获得此断言的最可能原因是由于内存不足,因为您可能会尝试分配您永远不会消耗的消息。
您能否注明要复制的步骤吗?
谢谢,PM_DIALOG.