经过反复试验,今晚我的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 速度后,串行监视器上出现了一些清晰的启动消息和命令响应。
由于这些消息被一些垃圾字符交错,我尝试降低通信速度。为此,我向模块发出了命令AT+IPR=9600
,它立即在蓝色 LED 上显示了一些动作,在控制台上显示了 OK 响应,最后导致相同的 LED 被固定。
因此,我调整了 Arduino 端的串行速度,esp8266.begin(9600);
但无法与模块进行任何进一步的通信。
我现在只能以任何速度看到垃圾。
模块可以升级到不同的速度吗?我尝试了其中的许多(4800、57600、19200、回到 115200 等),但显示器上没有出现明确的响应。
您能否建议尝试重新建立连接?有什么方法可以重置最后一个命令结果?如果可以尝试任何更简单的解决方案,我宁愿避免设置固件更新。