ESP32 als USB-zu-UART-Konverter in PlatformIO verwenden
Der ESP32 kann leicht als USB-zu-UART-Konverter verwendet werden. Beachten Sie, dass der ESP32 selbst keine USB-Schnittstelle besitzt und ESP32-Boards mit einem integrierten USB-Anschluss lediglich einen USB-zu-UART-Konverter verwenden (dies ist ein separater Chip auf dem Board). Aus Sicht des ESP32
Sie können UART TX und RX auf beliebige GPIO-Pins des ESP32 abbilden. Obwohl es sehr geringe Leistungsunterschiede bei der Verwendung vordefinierter Pins gibt, spielt dies in der Praxis keine Rolle. In diesem Beispiel verwenden wir Pin GPIO2 für UART RX und Pin GPIO4 für UART TX.
Im Wesentlichen kopiert der Code nur Bytes zwischen Serial2 und Serial (mit USB verbunden):
// Eingehende Bytes über PC-Seriell kopieren
while (Serial.available() > 0) {
Serial2.write(Serial.read());
}
// Eingehende Bytes über UART-Seriell kopieren
while (Serial2.available() > 0) {
Serial.write(Serial2.read());
}Vollständiges Beispiel
#include <Arduino.h>
#define UART_RX_PIN 2 // GPIO2
#define UART_TX_PIN 4 // GPIO4
void setup() {
// Serial verbindet sich mit dem Computer
Serial.begin(115200);
// Serial2 ist die Hardware-UART-Schnittstelle, die mit externer Schaltung verbunden ist
Serial2.begin(115200, SERIAL_8N1,
UART_RX_PIN,
UART_TX_PIN);
}
void loop() {
// Eingehendes Byte über PC-Seriell kopieren
while (Serial.available() > 0) {
Serial2.write(Serial.read());
}
// Eingehende Bytes über UART-Seriell kopieren
while (Serial2.available() > 0) {
Serial.write(Serial2.read());
}
}Bezüglich platformio.ini müssen wir nur monitor_speed auf den Wert in Serial.begin(115200); setzen:
[env:nodemcu-32s]
platform = espressif32
board = nodemcu-32s
framework = arduino
monitor_speed = 115200