求助!!!ESP32单片机 WiFi透传 长时间导致程序崩溃

#include <Arduino.h>
#include "WiFi.h"
#include "WiFiMulti.h"
// put function declarations here:
WiFiMulti WiFiMulti;
WiFiClient client;
WiFiGenericClass WIFI_CONFIG;


#define ssid      "ESP32_AP"//连接的WiFi名称
#define password  "syscan002"   //连接的WiFi密码
unsigned	char	ipdata,upCheck1	=	0,upCheck2	=	0;
unsigned long gu32CheckErrorNum=0,gu32data_Recv_Number=0,gu32data_send_Number=0;
uint8_t test[6]={0x12,0x34,0x56,0x78,0x0c,0x0b};//6 个字节的测试数据
char pRx_Buf[10]={0};
char u8cmd;
int value = 0;

WiFiServer ServerPort(12329);
IPAddress LocalIP(192,168,4,22);
IPAddress Gateway(192,168,4,22);
IPAddress SubNet(255,255,255,0);


void LED_RUN();

/// @brief 
void setup() {
  // put your setup code here, to run once:
  
  pinMode(16, OUTPUT); 

  Serial.begin(115200);  //启动串口通信并设置波特率为115200
  WiFi.mode(WIFI_AP); // 设置为AP模式
  WiFi.setSleep(false);//关闭休眠模式
  WIFI_CONFIG.setTxPower(WIFI_POWER_19_5dBm);
  WiFi.softAPConfig(LocalIP,Gateway,SubNet);
  delay(1000);
  WiFi.softAP(ssid);  //设置AP模式热点的名称和密码,密码可不填则发出的热点为无密码热点
  //停止小包合并发送
  ServerPort.setNoDelay(true);
  Serial.print("\n wifi name:");
  Serial.print(ssid);  //串口输出ESP32建立的wifi的名称
  Serial.print("\n wifi password:");
  Serial.print(password); 
  Serial.print("\n wifi IP:");
  Serial.print(WiFi.softAPIP());  //串口输出热点的IP地址
  Serial.print("\n wifi serverport:");
  Serial.print("12329");
    // 启动TCP服务器
  ServerPort.begin();

  
}


void loop() {
  // put your main code here, to run repeatedly:
WiFiClient client =ServerPort.available();   // 监听客户接入
 if (client) {                             // if you get a client,
   Serial.print("New Client.");           // print a message out the serial port
   
   while(client.connected())
   {
      // 检查是否有数据可供读取
     if(client.available()!=0)//打印报错数量和收发总数据量
     {
       // 读取客户端发送的数据
       client.readBytes(pRx_Buf,10);
       if(pRx_Buf[0]==0x62)
       {
        client.print("the ErrorNum is:");
	      client.print(gu32CheckErrorNum);
        client.print("the Sendtotal is:");
	      client.print(gu32data_send_Number);
        client.print("the Recvtotal is:");
	      client.print(gu32data_Recv_Number);
      
       }
       else
       {
       upCheck2	=	0;
        for(ipdata=0;ipdata<9;ipdata++)
	      {
		     upCheck2	^=	pRx_Buf[ipdata];					
	      }
        if(upCheck2!=pRx_Buf[9])
	      {
			
		     gu32CheckErrorNum++;
 
        }
 
        gu32data_Recv_Number++;
       // Serial.write(pRx_Buf,10);//打印客户端发来的数据

        
        client.write(pRx_Buf,10);// 发送响应到客户端
        
         gu32data_send_Number++;
       }
        
        
        
      }
   
   }


 }    

    
  
 

//LED_RUN();//code run status
}

使用上代码连续收发数据两三天就会导致程序崩溃了出现了一堆报警信息。不知道哪里导致错误

报错:Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.

Core  0 register dump:

PC      : 0x4008c180  PS      : 0x00060e30  A0      : 0x800d3d75  A1      : 0x3ffcb550  

A2      : 0x06050403  A3      : 0x3ffcb59c  A4      : 0xffffffff  A5      : 0x00000000  

A6      : 0x3ffcb680  A7      : 0x00000000  A8      : 0x8008c16b  A9      : 0x3ffcb530  

A10     : 0x00000002  A11     : 0x3ffd7418  A12     : 0x00060a20  A13     : 0x00060a23  

A14     : 0x00060a23  A15     : 0x00000001  SAR     : 0x00000016  EXCCAUSE: 0x0000001c  

EXCVADDR: 0x06050403  LBEG    : 0x400891f4  LEND    : 0x4008920a  LCOUNT  : 0x00000000  

Backtrace: 0x4008c17d:0x3ffcb550 0x400d3d72:0x3ffcb590 0x400d3de1:0x3ffcb5c0 0x40152f31:0x3ffcb680 0x40153004:0x3ffcb6d0

ELF file SHA256: eb6a928b52068462

网上是这样解释的当应用程序尝试读取或写入无效的内存位置时,会发生此 CPU 异常. 写入/读取的地址可在寄存器转储中的 EXCVADDR 寄存器中找到. 如果此地址为零,则通常表示应用程序尝试取消引用 NULL 指针. 如果此地址接近于零,则通常意味着应用程序尝试访问结构的成员,但指向该结构的指针为 NULL. 如果该地址是别的(垃圾值,不在 0x3fxxxxxx - 0x6xxxxxxx 范围内),则可能意味着用于访问数据的指针未初始化或已损坏.

 

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ESP32 WiFi是指通过ESP32模块实现无线数据输的功能。ESP32是一款集成了WiFi和蓝牙功能的微控制器,其强大的处理能力和丰富的通信接口使其成为物联网和无线通信领域的热门选择。 在进行ESP32 WiFi时,首先需要将ESP32作为一个WiFi模块连接到局域网中的无线网络。ESP32可以通过接入点模式或者客户端模式连接到无线网络,可以设置连接名称和密码进行认证。 一旦ESP32与无线网络连接成功,它就可以作为一个网络设备,通过WiFi输数据。在模式下,ESP32可以通过TCP或者UDP协议与其他设备进行通信。它可以充当服务器或者客户端,接收或者发送数据。 ESP32的应用非常广泛。它可以作为物联网设备的数据输通道,将感器数据、设备状态或者控制命令发送到云平台或者其他设备。同时,它也可以作为远程控制的接收端,接收来自手机或者计算机的指令,并按照指令进行相应的操作。 ESP32 WiFi的实现也非常方便。使用ESP-IDF或者Arduino框架,开发人员可以很容易地编写代码来控制ESP32的WiFi功能,并实现数据的收发。同时,许多第三方库和例程也可用于快速开发,进一步简化了开发过程。 总而言之,ESP32 WiFi是一种使用ESP32模块进行无线数据输的技术。它通过连接到无线网络,并通过WiFi的方式实现数据的收发。这一功能的广泛应用和便捷实现,使得ESP32在物联网和无线通信领域具有广阔的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值