Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 无法对ESP8266进行编程_Arduino_Wifi_Rxtx_Arduino Ide_Esp8266 - Fatal编程技术网

Arduino 无法对ESP8266进行编程

Arduino 无法对ESP8266进行编程,arduino,wifi,rxtx,arduino-ide,esp8266,Arduino,Wifi,Rxtx,Arduino Ide,Esp8266,模块通电后,蓝色led闪烁,红色led一直亮着,我甚至可以通过wifi连接。但我无法编程。我尝试了ArduinoIDE,不同的固件闪光器(如NodeMCU、XTCOM)。我用的是Arduino Mega 以下是我的初始设置: VCC - 3.3 V on Arduino RST - nothing CH_PD - 3.3 V on Arduino TX - RX on Arduino (TX is transmitting data to RX, so I don't need a voltag

模块通电后,蓝色led闪烁,红色led一直亮着,我甚至可以通过wifi连接。但我无法编程。我尝试了ArduinoIDE,不同的固件闪光器(如NodeMCU、XTCOM)。我用的是Arduino Mega

以下是我的初始设置:

VCC - 3.3 V on Arduino
RST - nothing
CH_PD - 3.3 V on Arduino
TX - RX on Arduino (TX is transmitting data to RX, so I don't need a voltage divider, right?)
RX - voltage divider (R1 = 10K, R2 = 20K) - TX on Arduino
GPIO0 - GND on Arduino
GPIO2 - nothing
GND - GND on Arduino
然后,我尝试从Arduino IDE上载草图,但出现以下错误:

warning: espcomm_sync failed 
error: espcomm_open failed
在尝试了不同的IDE、程序员、串行端口之后,我尝试了固件闪光器,至少看看是否可以与之通信。例如,NodeMCU 显示“等待MAC”,GPIO0接地,不接地

我还试着连接TX到TX和RX到RX,但得到了相同的结果。也尝试通过分压器连接RX

通过此设置,蓝色led持续亮起。我记得在某个地方读到,由于供电不足,可能会发生这种情况, 因此,我还尝试在没有分压器的情况下连接两个引脚(通电后蓝色led仍在闪烁,希望我没有烧坏它们)。 我还尝试将GPIO0连接到3.3V,但根本没有连接到任何东西,将RST连接到3.3V,将GPIO2连接到地面。 在Mega上有4组TX和RX引脚,所以我尝试了TX/RX0、1、2和3


仍然不知道发生了什么:(

原因可能是两件事之一:

  • 电源不足。请尝试从外部3.3V电源(如实验室电源)为ESP8266供电。两个完全充电的AA电池也可以。确保串行适配器的GND引脚也连接到ESP的GND引脚,以便提供公共接地

  • ESP8266未处于编程模式。请确保GPIO0已连接到GND,然后关闭并再次打开ESP。然后它将引导到编程模式。编程后,您可以将其从GND上取下

  • 编辑:


    从这篇文章开始,我实际上遇到了第三个更臭名昭著的原因。一些ESP8266模块(特别是ESP-12软件包)实际上,它们附带了可选的非核心固件。在这种情况下,您必须更新ESP上的固件。这是一个关于如何进行更新的很好的教程。我强烈建议您使用ESP Flash下载工具,不幸的是,它是Windows版的,但比在串行终端上进行更不容易出错。但是在开始这一旅程之前,m确保原因不是#1或#2。

    将其连接到串行端口时,将波特率设置为74880,然后通电。您应该会看到初始调试信息转储到串行端口

    您应该看到如下内容:

     ets Jan  8 2013,rst cause:2, boot mode:(3,6)
    
     load 0x40100000, len 29936, room 16 
     tail 0
     chksum 0xee
     load 0x3ffe8000, len 2304, room 8 
     tail 8
     chksum 0x51
     load 0x3ffe8900, len 8, room 0 
     tail 8
     chksum 0x9e
     csum 0x9e
    
    如果在引导时按住GPIO键(进入闪存模式),您应该会看到这一点

    ets Jan  8 2013,rst cause:2, boot mode:(1,6)
    
    注意从(3,6)到(1,6)的变化


    如果您没有看到任何显示,请仔细检查您的TX RX和GND连接。

    我最初遇到了相同的问题,但后来解决了。
    我已经在答案的末尾提供了链接。请按照链接进行操作。

    使用ESP8266-01时要记住的事项:

  • 您必须为ESP8266提供良好的3.3VDC电源才能使其工作。请勿 从Arduino提供3.3V电压,而不是使用LM1117-3.3电压调节器 提供ESP电源。LM1117-3.3电压调节器的输入电压必须高于7V或9V,这一点也很重要。请勿将Arduino的5V电压馈送至该调节器
  • R1应为1K,R2应为2K。有关更多信息,请参阅我在以下文章中为ESP8266-01提供的示意图
  • 闪烁/编程ESP8266-01的引脚配置,请参阅下文
  • 只需按照我文章的“部署->ESP8266-01草图”一节进行操作:

    这是我的编程模式。在我的型号上,按住闪存按钮并点击电路板上的重置按钮就足以将其置于编程模式。谢谢!