【问题标题】:ESP8266 Fatal exception (0) using NodeMCUESP8266 致命异常 (0) 使用 NodeMCU
【发布时间】:2016-07-10 18:11:54
【问题描述】:

当我启动 ESP8266 时,我正在使用我的 arduino MEGA 串行监视器。

Fatal exception (0): e2= 0d00l(xp00v0xao1,00e0c pe80c00d0x:2= 0d00l(xp00v0xao1,00e0c pe80c00d0x:2= 0d00l(xp00v0xao1,00e0c e 0xp0= 0e)02,0d00a 0e00c00Fic00= 0p0e 0xp0= 0e)02 

如果我进行硬重置而不是打印

Jan 8 2013,rst cause:4, boot mode:(3,6) wdt reset load 0x40100000, len 28740, room 16 tail 4 chksum 0xcd load 0x3ffe8000, len 2888, room 4 tail 4 0xeotail 0 chks 

我使用了 NodeMcu flasher nodemcu_integer_0.9.5_20150318.bin 和 NodeMCU 0.9.5 build 20150318,由 Lua 5.1.4 提供支持。我正在使用 arduino UART(串行监视器)与 ESP8266 通信。波特率 : 115200 FLASH SIZE : 4MB FLASH SPEED : 40MHz SPI : DIO Module 采用适当电源供电(单独供电)

这是我的联系方式:

//////////////////////////////////////////////////////////////////////////////
    ///////                         CONNECTIONS              ////////
    /////////////////////////////////////////////////////////////////////////////
    /*
    ESP8266 VCC -> BeagleBone 3.3
    ESP8266 GND -> Common GND (Arduino & BeagleBone)
    ESP8266 CH_PD -> 3K resistor -> VCC
    ESP8266 RST -> VCC or pin 13(arduino)
    GPIO CAB BE LEFT OPEN OR TIED HIGH
    ESP8266 Tx -> pin2 (Arduino software serial Rx)
    ESP8266 Rx <- Voltage Divider <- pin3 (Arduino software serial Tx)
    */

这是我的代码

#define esp8266 Serial2
#define CH_PD Vcc // but needs a narrow low pulse
#define speed8266 9600 // This is the speed that worked with my ESP8266
void setup()
{
 esp8266.begin (speed8266);
 Serial.begin(9600);
 reset8266(); // Pin CH_PD need a reset before start communication
}
void loop()
{
 while(esp8266.available())
 { Serial.write(esp8266.read()); }
 while(Serial.available())
 { esp8266.write(Serial.read()); }
}
/*************************************************/
// Reset funtion to accept communication
void reset8266 ()
{
 pinMode(CH_PD, OUTPUT);
digitalWrite(CH_PD, LOW);
 delay(300);
 digitalWrite(CH_PD, HIGH);
}

这是我在 NodeMCU 中所做的一些配置快照(我已经尝试过不同的波特率)

Advanced Configuration Configuration

【问题讨论】:

  • 我没有想法 :) 但我建议帮助其他人帮助您:准确指定您正在使用的 ESP(硬件)模块,并添加显示命令或屏幕截图刷新了 NodeMcu 固件(尤其是使用的地址):)
  • Cranphin 即使我正在失去希望。我已经上传了快照供参考,我每次都可以正确闪烁但之后无法通过。
  • @cranphin 我可以使用 AT 正确地使用以下二进制文件和位置刷新我的模块。 boot_v1.6.bin : 0X00000 esp_init_data_default.bin : 0XFC000 blank.bin : 0XFE000 user1.1024.new.2.bin : 0x1000 但是对于nodeMCU,当我安装最新固件 n​​odemcu_integer_0.9.6-dev_20150627.bin 在 0x000 我得到致命异常( 0): epc1=0x40210880, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00000000, depc=0x00000000
  • 嗨 @cranphin 模块可以很好地与 AT 命令配合使用 boot_v1.6.bin : 0X00000 esp_init_data_default.bin : 0XFC000 blank.bin : 0XFE000 user1.1024.new.2.bin : 0x1000 但与 NodeMCU 或者 i获取乱码数据(可能是因为波特率错误,9600)或致命异常(0)。如何解决这个致命异常,看来肯定是固件问题?
  • 嗨!这个问题stackoverflow.com/questions/29721859/…有一些方法可以清除与NodeMCU相关的闪存数据,这样做可能会有所帮助吗?您也可以尝试使用 NodeMCU 问题跟踪器(他们会说使用新固件,而不是 0.9.6,但我认为这不会解决您的问题;)

标签: lua arduino iot esp8266 nodemcu


【解决方案1】:

如果您遇到这样的致命错误异常:

例外(3): epc1=0x401003e9 epc2=0x00000000 epc3=0x00000000 excvaddr=0x4000cbd9 depc=0x00000000 在您的 arduino IDE 串行监视器中无限循环。

然后转到此链接下载软件并按照程序擦除闪存以解决错误。

这并不能解决由于您的程序而发生的致命错误,但如果您的设备处于无法访问程序内存的情况,那么它将工作并尝试至少一次来解决问题。

这是硬重置nodemcu的过程

(https://www.youtube.com/watch?v=MHrm7axsImI&t=146s)

步骤: 在你的电脑上安装最新的python版本。(https://www.python.org/downloads) 以管理员身份打开 cmd 提示符。 转到 c/program files 或 program files (x86)->python (your version)->Script。对于这种类型(cd c/program files (x86)/python(your version)/Script),然后按 enter 。 现在输入(pip install esptool)。 现在下载 ESPlorer (https://esp8266.ru/esplorer/) 版本(下载 ESPlorer.zip (v 0.2.0-rc6))并解压文件并打开可执行 jar 文件。 现在转到 nodemcu 固件站点 (https://github.com/nodemcu/nodemcu-firmware/releases ) 并从下载文件 (nodemcu_float_0.9.6-dev_20150704.bin ) 并将此文件复制到 c/program files (x86)/python(your version)/Script 文件夹中。 现在在 cmd 提示符下输入。 esptool.py --port COM(你的端口号) --baud 115200 erase_flash 然后按回车。

注意:你可以看到你的端口号。进入设备管理器。

【讨论】:

    【解决方案2】:

    对于遇到此问题的 NODEMCU 用户

    只需执行一次(第一次将 nodemcu 连接到 PC)

    下载并运行 32 或 64 位 flasher*:
    32位:https://github.com/nodemcu/nodemcu-flasher/blob/master/Win32/Release/ESP8266Flasher.exe
    64位:https://github.com/nodemcu/nodemcu-flasher/blob/master/Win64/Release/ESP8266Flasher.exe

    选择github上的下载按钮,下载后打开文件。

    选择上一步中的芯片端口(对我来说是 Com 6),然后选择 flash(这应该只需要做一次)
    完成后关闭 flash 程序。
    当您在左下角获得绿色复选标记时,流程完成。

    PS:一旦完成,请确保断开并重新连接 nodemcu

    参考:https://www.instructables.com/NodeMcu-ESP8266-First-Time-Setup-With-Arduino-IDE/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 2018-01-27
      • 1970-01-01
      • 2017-01-04
      相关资源
      最近更新 更多