串口变速后无法连接ESP8266

fra*_*ank 0 arduino at-command baud-rate esp8266

经过一些反复试验,今晚我的Arduino Uno开始与ESP8266模块进行通信,最常见的接线方式是,从大尺寸外部电源为模块提供3.3V电源,直接连接3.3V TX线路和分压器从5V RX读取.

SoftwareSerial esp8266(2,3);

void setup()
{
    Serial.begin(9600);
    esp8266.begin(115200);

    char buffer[50];
    esp8266.write("AT\r\n");
    esp8266.readBytes(buffer, sizeof(buffer));
    Serial.println(buffer);

}
Run Code Online (Sandbox Code Playgroud)

在为ESP8266 < - > Arduino串行通信设置115200速度后,串行监视器上出现了一些明确的启动消息和命令响应.

Arduino串行监视器显示与ESP8266模块的通信

由于这些消息是由一些垃圾字符交错的,我试图降低通信速度.为此,我向AT+IPR=9600模块发出命令,该模块立即显示蓝色LED上的一些操作,控制台上的OK响应,最后导致相同的LED被固定.

随后调整了串行速度上的Arduino的一侧,有esp8266.begin(9600);,但永远无法获得与模块的任何进一步的沟通. 我现在只能以任何速度看到垃圾.

模块可以升级到不同的速度吗?我尝试了很多(4800,57600,19200,回到115200等),但显示器上没有明显的响应.

您是否可以建议重新建立连接?有没有办法重置上一个命令结果?如果可以尝试任何更简单的解决方案,我宁愿避免设置固件更新.

fra*_*ank 6

这是解决方案!

AT+IPR已知该命令会破坏固件并使模块无响应,直到完全重新刷新.

我在这个论坛讨论中找到了解决方案.