让stm32和wifi连接和客户端在ap模式下的TCP通信,由于stm32采集环境数据不停的发送信息到客户端(at指令发送数据会有回显的数据OK或者error),客户端发送信息的时候,连接esp8266的wifi模块的rxd引脚接受到回显的数据和客户端的数据会通过同一引脚接收存在同一个数组里面,怎样过滤掉那个OK和error得到客户端传来的数据这个问题?我只想得到客户端传来的数据,我采用的是非阻塞式数据接受的使能中断函数,我讲该函数放在了回调函数里面,以便于自动接收数据存在数组里面,主函数里的while循环一定时间处理这个数组数据,我小白水平有限,各位大神能给我解决思路和办法吗?最好是有源代码借我理解分析一下?我已经困在这里一周了?谢谢各位大佬?汗颜惭愧啊!
在你的程序中,可以在接收到数据后,使用字符串函数来判断是否包含"OK"或"ERROR"。如果包含,则忽略这些数据,否则将其处理为客户端传来的数据。例如,可以使用strstr()函数来查找字符串中是否包含"OK"或"ERROR"。如果返回非空指针,则表示找到了这些字符串。否则,就是客户端传来的数据。这样的话,如果你的接受的数据是以固定字符结尾的,可以使用strcmp来进行判断.
下面是代码示例:
char receivedData[MAX_LEN];
//...
if (strstr(receivedData, "OK") == NULL && strstr(receivedData, "ERROR") == NULL) {
// receivedData 不包含 "OK" 或 "ERROR",处理它为客户端传来的数据
//...
}
这是给你一个思路,你可能需要根据你自己的项目来进行修改和完善。
不知道你这个问题是否已经解决, 如果还没有解决的话: