两个ESP32之间的串行通讯

Rog*_*ger 0 esp32

我已经找到了从arduino到arduino的基本串行通信示例,但无法在ESP32板上工作。我正在尝试使相同的东西在两个ESP32之间工作。两者连接在一起:

esp1   esp2
gnd to gnd
tx2 to rx2
rx2 to tx2
Run Code Online (Sandbox Code Playgroud)

简单的草图:

//transmit sketch
void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println("test...");
  delay(1000);
}

//receive sketch
void setup() {
  Serial.begin(9600);
}

void loop() {
  String received = "";
  while (Serial.available())
  {
    received = Serial.read();
    Serial.println(received);
  }
}
Run Code Online (Sandbox Code Playgroud)

要完成这项工作还需要什么?

小智 5

我认为您的代码来自一个更简单的世界,在这个世界中,引脚总是固定的,只有一个UART可用。使用ESP32,您可能应该沿着以下路线寻找解决方案:

#include <HardwareSerial.h>

HardwareSerial Serial2(2); // use uart2

Serial2.begin(19200, SERIAL_8N1, 16, 17); // pins 16 rx2, 17 tx2, 19200 bps, 8 bits no parity 1 stop bit
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。如果您在此之后仍然遇到问题,则可能是:a)您所使用的电路板未将16和17用于rx2和tx2,或者b)您需要10k上拉(非串联)电阻两条线都阻止它们“浮动”-但是某些板会为您处理引体向上。