我的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,但我遇到了同样的问题。