0

经过反复试验,今晚我的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);

}

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

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

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

因此,我调整了 Arduino 端的串行速度esp8266.begin(9600);但无法与模块进行任何进一步的通信。 我现在只能以任何速度看到垃圾。

模块可以升级到不同的速度吗?我尝试了其中的许多(4800、57600、19200、回到 115200 等),但显示器上没有出现明确的响应。

您能否建议尝试重新建立连接?有什么方法可以重置最后一个命令结果?如果可以尝试任何更简单的解决方案,我宁愿避免设置固件更新。

4

1 回答 1

6

这是解决方案!

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

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

于 2015-11-22T18:49:11.467 回答