UART读取未清除缓冲区

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
4个职位/0个新职位
最后一篇文章
利文斯顿
离线
最后一次见到:1年1个月前
已加入:2018-06-25 16:14
UART读取未清除缓冲区

你好,

我在做一个项目,以pxpèreporter为基础。我正在通过UART与ESP WiFi模块通信。

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

我已经检查了SDK,但没有找到清除缓冲区的方法,所以我假设read命令应该会这样做?任何建议都将不胜感激。

我的代码如下:

char rbuf[10];static char*cmd=“AT\r\n”;uart\u serial\u device=ad\u uart\u open(SERIAL1);ad\u uart\u bus\u acquire(uart\u serial\u device);ad\u uart\u write(uart\u serial\u device,cmd,strlen(cmd));//int cnt;ad\u uart\u read(uart\u serial\u device,rbuf,10,2000);ad\u uart\u bus\u release(uart\u serial\u device);ad\u close(uart\u serial\u device);

非常感谢。

设备:
PM\U对话框
离线
最后一次见到:2天12小时前
工作人员
已加入:2018-02-08 11:03
你好livingstonem,

你好livingstonem,

不,没有任何API来清除缓冲区。获取相同数据的最可能原因是缓冲区被相同的数据覆盖。如果要清除,则必须使用memset()并在它已满时用零初始化它。

谢谢,下午好

利文斯顿
离线
最后一次见到:1年1个月前
已加入:2018-06-25 16:14
谢谢你的回复,

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

PM\U对话框
离线
最后一次见到:2天12小时前
工作人员
已加入:2018-02-08 11:03
你好livingstonem,

你好livingstonem,

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

谢谢,下午好