首页 > 解决方案 > WiFi上的ESP32 UDP数据包接收延迟

问题描述

我有一个使用 UDP over WiFi 和 Arduino IDE 的相对简单的 ESP32 应用程序。测试应用程序每两秒轮询一次接收器应用程序。所有数据报都是 5 个字节长。一般接收端在 150ms 左右响应,但每 5000 个数据包左右,接收端就没有响应,直到另一个轮询到达,然后将丢失的响应与下一个轮询的响应一起接收。最初,我虽然在 WiFi 上丢失了 UDP 数据包,但似乎有时直到下一次收到的轮询“碰撞”时才收到收到的数据包。

数据报到达被监控如下

  pktSize = udp.parsePacket();

pktSize 不会偶尔设置为非零,直到出现另一个数据包。

凭直觉,我用#include“esp_wifi.h”替换了#include“WiFi.h”,这似乎解决了这个问题,并且还将对轮询的响应时间从大约150ms减少到60ms。

有谁知道发生了什么?“Wifi.h”和“esp_wifi.h”有什么区别 - 我看到的大多数 esp32 应用程序似乎都使用“WiFi.h”?

谢谢

标签: udpesp32packet-loss

解决方案


推荐阅读