草萋 2023-01-25 20:39 采纳率: 0%
浏览 22

stm32和esp8266以及客户端通信

让stm32和wifi连接和客户端在ap模式下的TCP通信,由于stm32采集环境数据不停的发送信息到客户端(at指令发送数据会有回显的数据OK或者error),客户端发送信息的时候,连接esp8266的wifi模块的rxd引脚接受到回显的数据和客户端的数据会通过同一引脚接收存在同一个数组里面,怎样过滤掉那个OK和error得到客户端传来的数据这个问题?我只想得到客户端传来的数据,我采用的是非阻塞式数据接受的使能中断函数,我讲该函数放在了回调函数里面,以便于自动接收数据存在数组里面,主函数里的while循环一定时间处理这个数组数据,我小白水平有限,各位大神能给我解决思路和办法吗?最好是有源代码借我理解分析一下?我已经困在这里一周了?谢谢各位大佬?汗颜惭愧啊!

  • 写回答

2条回答 默认 最新

  • 「已注销」 2023-01-25 22:52
    关注

    在你的程序中,可以在接收到数据后,使用字符串函数来判断是否包含"OK"或"ERROR"。如果包含,则忽略这些数据,否则将其处理为客户端传来的数据。例如,可以使用strstr()函数来查找字符串中是否包含"OK"或"ERROR"。如果返回非空指针,则表示找到了这些字符串。否则,就是客户端传来的数据。这样的话,如果你的接受的数据是以固定字符结尾的,可以使用strcmp来进行判断.

    下面是代码示例:

    char receivedData[MAX_LEN];
    //...
    if (strstr(receivedData, "OK") == NULL && strstr(receivedData, "ERROR") == NULL) {
        // receivedData 不包含 "OK" 或 "ERROR",处理它为客户端传来的数据
        //...
    }
    
    

    这是给你一个思路,你可能需要根据你自己的项目来进行修改和完善。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月25日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表