Arduino Portenta C33 wifi udp数据发送问题

我使用Arduino Portenta C33 wifi udp 发送数据 发送179次后数据就发送失败

代码如下:

#include <WiFiC3.h>
#include <WiFiUdp.h>

int status = WL_IDLE_STATUS;

char ssid[] = "01001";    // WiFi名
char pass[] = "01000100"; // WiFi密码
/*
IPAddress ip(192, 168, 137, 100);      // 设置您想要的固定IP地址
IPAddress gateway(192, 168, 173, 1);    // 设置网关IP地址
IPAddress subnet(255, 255, 255, 0);   // 设置子网掩码
IPAddress dns(0, 0, 0, 0);            // 设置DNS服务器IP地址
*/

unsigned int localPort = 2390; // 本地监听的端口

char packetBuffer[2]; // 用于存储传入数据包的缓冲区
char ReplyBuffer[] = "a";
char ReplyBuffer1[] = "rrrrrrrrrrrr"; // 要发送的字符串

size_t size = 8;

WiFiUDP Udp;

void setup()
{
  // 初始化串口并等待端口打开:
  Serial.begin(9600);

  pinMode(LEDR, OUTPUT);
  pinMode(LEDG, OUTPUT);
  pinMode(LEDB, OUTPUT);
  digitalWrite(LEDR, HIGH);
  digitalWrite(LEDG, HIGH);
  digitalWrite(LEDB, HIGH);

  digitalWrite(LEDR, LOW);
  // 取消低功率模式
  WiFi.noLowPowerMode();

  // 检查WiFi模块:
  if (WiFi.status() == WL_NO_MODULE)
  {
    Serial.println("WiFi模块通信失败!");
    // 停止运行
    while (true)
      ;
  }

  String fv = WiFi.firmwareVersion();
  if (fv < WIFI_FIRMWARE_LATEST_VERSION)
  {
    Serial.println("请升级固件");
  }

  // WiFi.config(ip, gateway, subnet, dns);

  WifiCONNECTED();
  digitalWrite(LEDR, LOW);
  digitalWrite(LEDB, LOW);

  Serial.println("\n开始连接到服务器...");
  // 如果成功连接,通过串口报告:
  Udp.begin(localPort);
}

int i;
int b;

void loop()
{

 

 Udp.beginPacket("192.168.137.1", 60835);

    b++;
    Serial.print("b:");
    Serial.println(b);

    // 写入数据到数据包
    Udp.print(b);
    Udp.print(ReplyBuffer);

    // 检查数据包发送是否成功
    if (Udp.endPacket() == 0)
    {
      // 打印断开连接的错误代码
      Serial.println(WiFi.reasonCode());
      Serial.println("发送数据包失败");
    }
    else
    {
      Serial.println("成功");
    }
    Udp.flush();
    delay(200);
}

void printWifiStatus()
{
  // 打印您所连接网络的 SSID:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // 打印您的主板的 IP 地址:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // 打印接收到的信号强度:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

void WifiCONNECTED()
{

  digitalWrite(LEDR, HIGH);
  digitalWrite(LEDB, LOW);
  // 尝试连接到WiFi网络:
  while (status != WL_CONNECTED)
  {
    Serial.print("尝试连接到SSID: ");
    Serial.println(ssid);

    // 连接到WPA/WPA2网络。如果使用开放网络或WEP网络,请更改此行:
    status = WiFi.begin(ssid, pass);

    digitalWrite(LEDG, LOW);
    // 等待10秒钟进行连接:
    delay(10000);
  }
  Serial.println("已连接到WiFi");
  printWifiStatus();
}

测试官方的例程也有该问题

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.