我使用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.