我使用arduino Duemilanove正确购买了新的ESP8266 WIFI模块(8针)和闪存固件(来自https://raw.githubusercontent.com/nodemcu/nodemcu-flasher/master/Win32/Release/ESP8266Flasher.exe)。 我已经完成了许多故障排除步骤,但是在重置模块上确实给出了一些乱码响应,但没有来自“AT”命令的就绪/ OK响应。
红色LED 模块始终打开但蓝灯熄灭。
采取的措施: -
为了提供足够的电流,我使用了Beaglebone 3V3电源作为模块Vcc。 但我无法从AT命令收到任何回复。
Arduino Tx(5V)使用分压器降低到3v3 连接到Rx
这是我的关系:
//////////////////////////////////////////////////////////////////////////////
/////// 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);
}
这是串行监视器上的输出 Arduino Serial Monitor Output
请帮助我,我做错了什么? 我不想使用另一个FTDI芯片,而arduino已经拥有它。
答案 0 :(得分:1)
目前我只能给你一个部分答案(似乎我还不能评论:))。
启动/重置ESP时,乱码是正常的,它只是以74880波特输出启动消息的启动代码(基本上是默认波特率115200,但因为ESP以较低的CPU频率启动,波特率速率也低,启动频率为26 mhz,正常频率为40 mhz,26/40 * 115200 = 74880.如果你可以将串行客户端设置为74880波特,你应该看到消息,但这是一个奇怪的波特率,所以它可能很难或不可能设置。
复位时的胡言乱语很好!这意味着ESP工作和开心,问题出在你的软件上(正如你自己也确定的那样)。
我假设您的代码在Arduino端? 最大的问题是ESP上闪现的是什么,以及它的预期是什么。从你的问题我不是100%肯定你做了什么闪光..
我想你可能已经在它上面闪现了nodemcu,它不会响应AT命令,尝试从它上面的Espressif Systems闪现'原始'AT rom?