ESP8266使用NodeMCU的致命异常(0)

时间:2016-07-10 18:11:54

标签: lua arduino iot esp8266 nodemcu

当我启动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 

我使用了由Lua 5.1.4驱动的NodeMcu闪存器nodemcu_integer_0.9.5_20150318.bin和NodeMCU 0.9.5 build 20150318。我正在使用arduino UART(串行监视器)与ESP8266对话。波特率:115200闪存大小:4MB闪存速度:40MHz SPI:DIO模块采用交流电源供电(独立电源)

这是我的关系:

//////////////////////////////////////////////////////////////////////////////
    ///////                         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

2 个答案:

答案 0 :(得分:0)

如果您遇到致命错误异常,请执行以下操作:

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

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

这不能解决由于您的程序而导致的致命错误,但是如果您的设备处于无法访问程序内存的状态,那么它将起作用并尝试至少一次来解决问题。 / p>

这是硬重置nodemcu的过程

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

步骤: 在你的电脑上安装最新的python版本。(https://www.python.org/downloads) 以管理员身份打开cmd提示符。 转到c /程序文件或程序文件(x86) - &gt; python(您的版本) - &gt;脚本。对于此类型(cd c / program files(x86)/ python(您的版本)/ 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(您的版本)/ Script文件夹中。 现在在cmd提示符下输入。     esptool.py --port COM(你的端口号) - 波特115200 erase_flash 然后按回车。

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

答案 1 :(得分:0)

对于遇到此问题的 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上的下载按钮,下载后打开文件。

enter image description here

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

PS:确保在完成后断开并重新连接nodemcu

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