乐鑫技术交流
直播中

廉鼎琮

7年用户 939经验值
私信 关注
[问答]

nodemcu esp-12e用作coap客户端不断异常的原因?

我是 arduino ide 和这些代码的新手,试图将我的 nodemcu esp-12e 用作 coap 客户端,但我不断收到异常 28 错误,我不知道是什么原因造成的,这是一个学校项目,我似乎不能为了取得任何进展,如果我能得到任何帮助,我将不胜感激,在此先感谢。
异常 28:LoadProhibited:A load referenced a page mapped with an attribute that doesn\'t loads
PC: 0x4000bf80
EXCVADDR: 0x0000008c
解码堆栈结果
0x402019e0: coapClient::send(IPAddress, int, char*, COAP_TYPE, COAP_METHOD, unsigned char*, unsigned char, unsigned char*, unsigned int, unsigned char, unsigned char) 在 C:\\Users\\ugur_\\OneDrive\\Belgeler\\Arduino\\libraries\\ESP-CoAP-master\\coap_client.cpp 第 81 行
0x40100100: ets_intr_lock() 在 C:\\Users\\ugur_\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266\\core_esp8266_main.cpp 第 159 行 0x402035e6: uart_tx_fifo_available(int ) 在 C:
\\ Users\\ugur_\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266\\uart.cpp line 499
0x40203670: uart_do_write_char(int, char) 在 C:\\Users\\ugur_\\AppData\\Local \\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266\\uart.cpp line 512
0x40201ea8: HardwareSerial::write(unsigned char) 在 C:\\Users\\ugur_\\AppData\\Local\\Arduino15\\packages\\ esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266/HardwareSerial.h 第 189 行
0x40201a70:coapClient::loop() 在 C:\\Users\\ugur_\\OneDrive\\Belgeler\\Arduino\\libraries\\ESP-CoAP-master\\coap_client .cpp 第 191 行
0x4020825b: rand at /workdir/repo/newlib/newlib/libc/stdlib/rand.c line 79
0x40201a3c: coapClient::get(IPAddress, int, char*) at C:\\Users\\ugur_\\OneDrive\\Belgeler\\Arduino\\ libraries\\ESP-CoAP-master\\coap_client.cpp line 29
0x401008cc: malloc(size_t) 在 C:\\Users\\ugur_\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266\\umm_malloc \\umm_malloc.cpp 行 821
0x40100274: pvPortMalloc(size_t, char const*, int) 在 C:\\Users\\ugur_\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266\\umm_malloc/ umm_heap_select.h 第 85 行
0x40201a70:coapClient::loop() 在 C:\\Users\\ugur_\\OneDrive\\Belgeler\\Arduino\\libraries\\ESP-CoAP-master\\coap_client.cpp 第 191 行
0x402021f8: Print::println() 在 C:\\Users\\ugur_\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266/Print.h 第 57 行 0x402017c7: coapClient::start
( ) 在 C:\\Users\\ugur_\\OneDrive\\Belgeler\\Arduino\\libraries\\ESP-CoAP-master\\coap_client.cpp 第 24 行 0x4020118a: setup() 在 C:\\Users\\
ugur_\\AppData\\Local\\Temp\\arduino_modified_sketch_968430/coapclient .ino 第 66 行
0x40202934:loop_wrapper() 在 C:\\Users\\ugur_\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266\\core_esp8266_main.cpp 第 198 行
代码:全选/*
ESP-COAP Client
*/
#include
#include \"coap_client.h\"

//instance for coapclient
coapClient coap;

//WiFi connection info
const char* ssid = \"tt12\";
const char* password = \"12345\";

//ip address and default port of coap server in which your interested in
IPAddress ip(127,0,0,1);//take ETH Zurich or coap.me server to run and check client
int port =5683;

// coap client response callback
void callback_response(coapPacket &packet, IPAddress ip, int port);

// coap client response callback
void callback_response(coapPacket &packet, IPAddress ip, int port) {
    char p[packet.payloadlen + 1];
    memcpy(p, packet.payload, packet.payloadlen);
    p[packet.payloadlen] = NULL;

    //response from coap server
if(packet.type==3 && packet.code==0){
      Serial.println(\"ping ok\");
    }

    Serial.println(p);
}

void setup() {
   
    Serial.begin(115200);

    WiFi.begin(ssid, password);
    Serial.println(\" \");

    // Connection info to WiFi network
    Serial.println();
    Serial.println();
    Serial.print(\"Connecting to \");
    Serial.println(ssid);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    //delay(500);
    yield();
    Serial.print(\".\");
    }
    Serial.println(\"\");
    Serial.println(\"WiFi connected\");
    // Print the IP address of client
    Serial.println(WiFi.localIP());

    // client response callback.
    // this endpoint is single callback.
    coap.response(callback_response);

    // start coap client
    coap.start();

    //get request to server (arguments ip adrress of server,default port,resource(uri))
    int msgid = coap.get(ip,port,\"light\");

    //observe request (arguments ip adrress of server,deafult port,resource name,interger(0) )
    //int msgid= coap.observe(ip,port,\"light\",0);

    //reset observe cancel
    //int msgid=coap.observecancel(ip,port,\"resoucename\");
   
}
//int i=0;

void loop() {
    bool state;

    // Requests

    //get request
    //int msgid = coap.get(ip,port,\"hello\");

    //put request
    //arguments server ip address,default port,resource name, payload,payloadlength
    //int msgid =coap.put(ip,port,\"resourcename\",\"0\",strlen(\"0\"));

    //post request
    //arguments server ip address,default port,resource name, payload,payloadlength
    //int msgid =coap.post(ip,port,\"resourcename\",\"0\",strlen(\"0\"));

    //delete request
    //int msgid = coap.delet(ip,port,\"resourcename\");

    //ping
    //int msgid=coap.ping(ip,port);
   
    // int msgid=coap.observe(ip,port,\"obs\",0);
  
    state= coap.loop();
    // Serial.print(\"state=\");
    //Serial.println(state);
    //if(state==true)
          //i=i+1;
  
    //Serial.print(\"i=\");
    //Serial.println(i);
      //if(i==3)
    //{
        //Serial.println(\"cancel observe\");
        //coap.observeCancel(ip,port,\"resourcename\");
    //}
  
    //Serial.println(msgid);
    delay(1000);
}


更多回帖

发帖
×
20
完善资料,
赚取积分