打印
[IDE]

ESP-NOWs使用小坑

[复制链接]
52|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GlenX|  楼主 | 2025-5-21 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 接收回调函数:

  // 注册接收回调函数,

  例程回调函数是:esp_now_register_recv_cb(OnDataRecv); 没有错误,可以就是无法编译!

  最后找到官贴,才发现新版本需要将OnDataRecv 改写成:esp_now_recv_cb_t(OnDataRecv) 

  这版本改的真玄妙!?
2. 接收指针变量问题:

// 数据接收回调函数
  void OnDataRecv(const uint8_t *mac, const uint8_t *data, int len) {
  FloatData receivedData;
  // 复制接收到的数据到结构体(注意:data已经是指针了,前不能加& !!!)
  memcpy(&receivedData, data, sizeof(receivedData));
  }
 结果我“COPY”的例程中在变量转移采用的是:memcpy(&receivedData, &data, sizeof(receivedData));

 &data改变了指针的性质,导致接收到的数据与发送不相关,但却是“同步”接收正常。

3. 发送方如果有为了节电,采用LITGH SLEEP定时唤醒,则休眠不能大于1秒,否则网络判断为“失恋”,丢帧率大于90%.

_______________________________________________________________________________________

以上是反复长时间测试的结果,不代表产品质量问题,

仅是esp_now多次测试结果,希望大家引起重视。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

598

帖子

2

粉丝