Arduino延迟函数与SoftwareSerial

时间:2017-06-11 15:53:15

标签: arduino esp8266 software-serial

我的Arduino(在Banggood上买的GeekCreit)似乎在SoftwareSerial和delay函数之间存在冲突。我正在尝试使用SoftwareSerial将AT命令发送到ESP-01。

当我表演时:

#include <SoftwareSerial.h>;

SoftwareSerial esp8266(8,9);

void setup() {
  Serial.begin(9600);
  while (!Serial) ;
  esp8266.begin(9600);
  esp8266.println("AT");
}

void loop() {
 if(esp8266.available()) {
    while(esp8266.available()) {
      Serial.print(esp8266.read());
    }  
  }
}

一切正常,AT命令已发送,我收到ESP的回复。

但是当我在发送AT命令之前添加延迟时,没有任何反应:没有命令发送,ESP没有回答。

#include <SoftwareSerial.h>;

SoftwareSerial esp8266(8,9);

void setup() {
  Serial.begin(9600);
  while (!Serial) ;
  esp8266.begin(9600);
  delay(2000);
  esp8266.println("AT");
}

void loop() {
 if(esp8266.available()) {
    while(esp8266.available()) {
      Serial.print(esp8266.read());
    }  
  }
}

我做错了什么,有人经历过同样的问题吗?

我尝试使用AltSoftSerial,但我遇到了同样的问题。

0 个答案:

没有答案