UART读取不清除缓冲区

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
livingstonem
离线
最后看到:1年1个月前
加入:2018-06-25十六14
UART读取不清除缓冲区

你好,

我正在做一个项目,使用pxp_reporter作为基础。我正在通过UART与ESP WiFi模块通信。

我已经配置了UART,并且可以与设备通信。不过,以后我做得成功了ad_uart_read,我总是得到相同的数据为任何额外的读操作之后。当我直接通过pro开发板上的USB->UART桥与ESP设备通信时,我没有这个问题。

我检查了SDK,我没有看到一种方法来清除缓冲区,所以我假设读命令应该做它?任何建议都将非常感谢。

我的代码如下:

char rbuf [10];static char *cmd = "AT\r\n";uart_serial_device = ad_uart_open (SERIAL1);ad_uart_bus_acquire (uart_serial_device);ad_uart_write (cmd, uart_serial_device strlen (cmd));/ / int问;Ad_uart_read (uart_serial_device, rbuf, 10, 2000);ad_uart_bus_release (uart_serial_device);ad_uart_close (uart_serial_device);

谢谢你!

设备:
PM_Dialog
离线
最后看到:2天11小时前
工作人员
加入:2018-02-08 11:03
嗨livingstonem,

嗨livingstonem,

没有,没有任何API来清除缓冲区。获得相同数据的最可能的原因是缓冲区被相同的数据覆盖。如果想要清除,可以使用memset()并在它满的时候用0初始化它。

谢谢,PM_Dialog

livingstonem
离线
最后看到:1年1个月前
加入:2018-06-25十六14
谢谢你的回复,

谢谢你的回复,它帮助我解决了我的问题。出于某种奇怪的原因,我希望读取能够自动清除缓冲区。

PM_Dialog
离线
最后看到:2天11小时前
工作人员
加入:2018-02-08 11:03
嗨livingstonem,

嗨livingstonem,

很高兴你解决了你的问题,谢谢你接受我的回答。

谢谢,PM_Dialog