【发布时间】:2016-09-10 12:46:52
【问题描述】:
我买了一个新的 ESP8266 WIFI 模块(8 针)并正确使用 arduino Duemilanove 刷了固件(来自https://raw.githubusercontent.com/nodemcu/nodemcu-flasher/master/Win32/Release/ESP8266Flasher.exe)。 我已经完成了许多故障排除步骤,但在重置模块确实给出了一些乱码响应,但 “AT”命令没有 Ready/OK 响应。
红色 LED 模块常亮,但蓝灯不亮。
采取的步骤:-
为了提供足够的电流,我使用 Beaglebone 3V3 电源作为 Vcc 模块。 但我无法收到来自 AT 命令的任何响应。
Arduino Tx (5V) 已使用分压器降低到 3v3,并且 连接到 Rx
- 在 Flash 设置中确保波特率为 115200 且所有设置均正确
- 模块工作正常,可能与另外 2 个模块相同
这是我的联系方式:
//////////////////////////////////////////////////////////////////////////////
/////// 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 已经有了它。
【问题讨论】:
-
根据我的经验,这种乱码(不是静默)是典型的错误串行端口设置:波特率、数据位、奇偶校验、停止位。此模块的一些文档状态为“8N1”,波特率为 115200,而其他(例如来自 sparkfun 的“NURDspace Wiki(原理图、数据表和更多!)”链接到此https://nurdspace.nl/ESP8266,其中指出波特率为57600. 这个其他的法语文档here 与 9600 一起使用......这真的是业余爱好者的东西......
-
(如下)所以我会尝试其他波特率,从 115200(似乎不起作用)到 57600,然后是 38400、19200,最后是 9600。
-
我尝试了所有波特率,结果相同。而且这不是乱码,奇怪的数据在重置过程中只出现一次,否则它完全沉默没有响应。有时在测试期间,它不是乱码,而是一些致命异常(0)或 checksum0x0000 rooms 0 tail 8... 之类的事情..
-
我只对 ESP 的直接 gcc 编译器有经验(请指定下次使用哪个模块),但我的第一个猜测是芯片被炸了。假设您已经正确测试了不同的波特率和奇偶校验设置,但无济于事,则在炸芯片时会吐出随机噪声。我知道这一点的唯一原因是因为它不久前发生在我的一个 ESP03 上。我仍然可以刷新芯片,但多个 GPIO 会随机运行,串行通信完全是垃圾,如果我记得的话,我想我的 ADC 停止工作了。总而言之,这是一个您可能不小心做空的 2 美元筹码。哦,好吧。