ESP8266 - 例外(29)StoreProhibited

时间:2017-04-26 06:36:02

标签: iot

朋友我正在使用MQTT协议在NodeMCU v3上工作。客户端获得连接,当我发送长消息时,出现了一个预测29。

我的代码是:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = "ABCDEFG";
const char* password = "Hello12345";
const char* mqtt_server = "broker.mqtt-dashboard.com";
WiFiClient espClient;
PubSubClient client(espClient);
void setup_wifi() {
   delay(100);
  // We start by connecting to a WiFi network
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) 
{
  delay(500);
  Serial.print(".");
}
  randomSeed(micros());
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
 }

  void callback(char* topic, byte* payload, unsigned int length) 
{
  Serial.print("Command is : [");
  Serial.print(topic);
  Serial.print("]");
  for (int i=0;i<length;i++) {
   Serial.print((char)payload[i]);
  }
} 

void reconnect() {
    while (!client.connected()) 
  {
    Serial.print("Attempting MQTT connection...");
    // Create a random client ID
    String clientId = "ESP8266Client-";
    clientId += String(random(0xffff), HEX);
    if (client.connect(clientId.c_str()))
    {
      Serial.println("connected");
     //once connected to MQTT broker, subscribe command if any
      client.subscribe("hello_hi");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 6 seconds before retrying
      delay(6000);
    }
  }
} 

void setup() {
 Serial.begin(115200);
 Serial.println("Setup completato...");
 setup_wifi();
 client.setServer(mqtt_server, 1883);
 client.setCallback(callback);
 }

void loop() {
  if (!client.connected()) {
   reconnect();
  }

  client.loop();
} 

解码后我得到这个例外:

异常29:StoreProhibited:商店引用了一个映射了不允许存储的属性的页面 解码2个结果 0x40203376:PubSubClient :: loop()在/home/softwares/arduino-1.8.2/libraries/pubsubclient/src/PubSubClient.cpp第584行

提前致谢。

1 个答案:

答案 0 :(得分:0)

首先确保节点mcu上的电源良好。

还请检查IDE中的闪存大小设置是否与闪存芯片的大小匹配。有一个CheckFlashConfig示例,请在您的电路板上运行它。