为什么我无法通过AT命令降低ESP8266的波特率

时间:2019-01-19 19:17:21

标签: arduino esp8266 at-command baud-rate

我想降低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());
    }
}

1 个答案:

答案 0 :(得分:0)

假设:

  1. 您已将计算机连接到Arduino Mega
  2. 您已将ESP8266连接到软件串行引脚。
  3. 您正在尝试通过Arduino Mega将AT命令发送到esp。

如果我的假设是正确的,那就是这种情况。

最初,在打开系统电源时,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发送更多的波特率更改命令。