SoftSerial 不工作 ESP8266
SoftSerial Not Working 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 引脚。还是不行。关于我可能做错了什么有什么想法吗?
正如您在评论中提到的,SoftwareSerial esp(6,7)
适用于 UNO
但不适用于 Mega
。对于 google Arduino SoftwareSerial 参考页,尤其是限制部分,这应该足够大了。
简而言之,与 UNO
不同,Mega
没有在所有引脚上都具有引脚变化中断功能。所以你不能在引脚 6 上有 Rx 引脚。
我正在尝试通过 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 引脚。还是不行。关于我可能做错了什么有什么想法吗?
正如您在评论中提到的,SoftwareSerial esp(6,7)
适用于 UNO
但不适用于 Mega
。对于 google Arduino SoftwareSerial 参考页,尤其是限制部分,这应该足够大了。
简而言之,与 UNO
不同,Mega
没有在所有引脚上都具有引脚变化中断功能。所以你不能在引脚 6 上有 Rx 引脚。