我想降低SerialSoftware
的ESP的波特率,但是我对下面的命令不断收到“错误”响应。
我正在使用Arduino Mega和Arduino IDE的串行监视器执行命令:
AT+CIOBAUD=9600
AT+UART_DEF=9600,8,1,0,3
我尝试了AT并结合了其他一些似乎正常工作并返回OK的命令。
我使用以下代码发送命令:
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
while (!Serial) {}
Serial.println("Goodnight moon!");
mySerial.begin(115200);
mySerial.println("Hello, world?");
}
void loop() {
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
答案 0 :(得分:0)
假设:
如果我的假设是正确的,那就是这种情况。
最初,在打开系统电源时,ESP8266的波特率默认设置为115200。
使用命令AT+CIOBAUD=9600
时,它会暂时设置为9600。
但是这里的问题是,您的Arduino上的软件序列仍以115200波特率运行。
这意味着当您发送下一条指令AT+UART_DEF=9600,8,1,0,3
时,Arduino Mega以115200的波特率发送该指令,而esp正在侦听9600的波特。
解决方案:
查看以下链接以了解如何永久更改ESP8266的波特率
https://www.esp8266.com/viewtopic.php?f=13&t=718
接下来,使用您当前的设置来发送您在上部链接中找到的命令。
接下来更新Arduino Mega的代码,使软件序列的波特率为9600,并且不再通过Mega发送更多的波特率更改命令。