SoftSerial不工作ESP8266

时间:2017-12-19 18:16:45

标签: arduino esp8266 arduino-esp8266

我试图通过Arduino Mega与我的ESP8266模块进行通信,ESP的Rx引脚连接到Mega的引脚7,ESP的Tx引脚连接到Mega的引脚6.我试着运行以下测试代码:

#include <SoftwareSerial.h>

SoftwareSerial esp8266(6, 7);

void setup() {
 // Open serial communications and wait for port to open:
 Serial.begin(115200);
 while (!Serial) {
   ; // wait for serial port to connect. Needed for native USB port only
 }

  Serial.println("Started");

 // set the data rate for the SoftwareSerial port
 esp8266.begin(9600);
 esp8266.write("AT\r\n");
}

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

我没有得到ESP8266模块的回复。然后我尝试使用Mega专用的Tx和Rx引脚(分别为1和0)。我可以使用串行监视器发送命令并回复。首先,我以115200波特率发送AT+CIOBAUD=9600,将ESP模块的波特率更改为9600.然后,在9600波特率下,我发送了AT+UART_DEF=9600,8,1,0,0。它按预期回复OK。我再次尝试运行这个程序,但我仍然没有得到ESP 8266模块的响应。我也尝试过简单地切换Rx和Tx引脚以确保安全。仍然无法正常工作。关于我可能做错的任何想法?

1 个答案:

答案 0 :(得分:0)

正如您在评论中提到的那样,SoftwareSerial esp(6,7)适用于UNO但不适用于Mega。这应该提示大到足以谷歌Arduino SoftwareSerial参考页面,特别是限制部分。

简而言之,与UNO不同,Mega在所有引脚上都没有引脚更改中断功能。所以你不能在引脚6上安装Rx引脚。