两个 ESP32 之间的串行通信



我找到了基本的arduino到arduino串行通信的例子,但无法找到那些在ESP32板上工作的例子。我正在尝试在两个 ESP32 之间做同样的事情 两者是相连的:

esp1   esp2
gnd to gnd
tx2 to rx2
rx2 to tx2

简单的草图:

//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);
  }
}

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

我认为您的代码来自一个更简单的世界,在这个世界中,引脚始终是固定的,并且您只有一个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

我希望这有所帮助。如果在此之后你仍然有问题,它们可能是a(你使用的电路板不使用16和17的rx2和tx2,或者b(你需要10k上拉(非串联(电阻在两条线上阻止它们"浮动" - 但是有些板会为你处理上拉

应满足以下所有条件才能使其正常工作:

  1. ESP32 开发板不应使用您要使用的串口进行任何嵌入式功能。所以它应该是免费使用的。

  2. 确保您使用的是正确的引脚:

    <样式>Rx<样式>Tx
    U
    串行4041
    序列号1910
    序列号21617

最新更新