你好,
我在做一个项目,以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);
非常感谢。
设备:
你好livingstonem,
不,没有任何API来清除缓冲区。获取相同数据的最可能原因是缓冲区被相同的数据覆盖。如果要清除,则必须使用memset()并在它已满时用零初始化它。
谢谢,下午好
谢谢你的回复,它帮助我解决了我的问题。出于某种奇怪的原因,我希望读取会自动清除缓冲区。
你好livingstonem,
很高兴你解决了问题,谢谢你接受我的回答。
谢谢,下午好