Uart - VSCode mit ESP32
Quellen
circuits4you.com :
ESP32 Hardware Serial2 Example
Übersicht
Das ESP32UnoBoard stellt dem Benutzer unter VSCode drei UARTs bereit:
• ESP32-Serial (SerialUSB)
• ESP32-Serial1
• ESP32-Serial2
Hardware
Pin-Layout des ESP32UnoBoards:
Pin-Belegung ESP32UnoBoard
Die UARTs sind standardmässig folgenden Pins zugeordnet:
UART |
Software |
Pin TxD |
Pin RxD |
Note |
UART0 |
Serial |
GPIO1 |
GPIO3 |
Serial (USB) |
UART1 |
Serial1 |
GPIO10 |
GPIO9 |
Serial1 |
UART2 |
Serial2 |
GPIO17 |
GPIO16 |
Serial2 |
Eine typische technische Umsetzung von den LVTTL-IO-Pegeln des MicroControllers
zu USB-Signalen findet über einen UART-USB-Converter statt.
Der USB-Ausgang des UART-USB-Converters wird über ein USB-Daten-Kabel
(USB2MiniAB - USB2StandardA) mit dem einem PC verbunden.
Ausgenommen ist dabei der SerialUSB-Port:
hier wird zur PC-Verbindung ein USB-Daten-Kabel (USB2MicroAB - USB2StandardA)
benötigt:
Verschaltung von drei UARTs beim ESP32UnoBoard
Software
Unter der Software "VSCode" mit dem AddOn "PlatformIO" erstellt der
Benutzer ein neues Projekt für den Prozessor "ESP32":
VSCode: Projekt mit ESP32UnoBoard
Im "DeviceManger" unter "Port (COM & LPT)" sieht der Benutzer alle real
verfügbaren seriellen UART-Schnittstellen:
DeviceManager
In diesem Beispiel stehen drei UARTs:
• 1x ESP32-USB: COM4
• 2x UART-USB-Converter: COM31, COM32
für den ESP32 zur Datenübertragung bereit.
Die ESP32-USB-Schnittstelle benötigt VSCode ausschliesslich zur Programmierung
und daher steht nach der Programmierung des ESP32 diese Schnittstelle dem Benutzer
zur freien Verwendung.
Das Beispiel "Esp32 mit UART0, UART1 und UART2 im Terminalbetrieb" zeigt
den Protokoll-Mitschnitt des Transmits aller drei UART-Schnittstellen im PC:
Esp32 mit UARTUSB, UART1 und UART2 im Terminalbetrieb
Den zugehörigen VSCode-Quelltext "main.cpp" zeigt das Listing:
//
#include
//
//----------------------
// Define
//----------------------
const int PIN_LEDSYSTEM = 2;
const int PERIOD_BLINK = 333; // [ms]
// Uart0 - USB
const int PIN_UART0_TXD = 1;
const int PIN_UART0_RXD = 3;
// Uart1 - A
const int PIN_UART1_TXD = 25;
const int PIN_UART1_RXD = 26;
// Uart2 - B
const int PIN_UART2_TXD = 17;
const int PIN_UART2_RXD = 16;
//
#define UartUSB Serial
#define UartPCA Serial1
#define UartPCB Serial2
//
//----------------------
// Global
//----------------------
int CounterDebug = 0;
//
//----------------------
// Main - Setup
//----------------------
void setup(void)
{
pinMode(PIN_LEDSYSTEM, OUTPUT);
//
UartUSB.begin(115200, SERIAL_8N1, PIN_UART0_RXD, PIN_UART0_TXD);
UartPCA.begin(115200, SERIAL_8N1, PIN_UART1_RXD, PIN_UART1_TXD);
UartPCB.begin(115200, SERIAL_8N1, PIN_UART2_RXD, PIN_UART2_TXD);
delay(333);
//
UartUSB.println("\r\n*** Esp32Uart-0-USB ***");
UartPCA.println("\r\n*** Esp32Uart-1-PCA ***");
UartPCB.println("\r\n*** Esp32Uart-2-PCB ***");
}
//
//----------------------
// Main - Loop
//----------------------
void loop(void)
{
digitalWrite(PIN_LEDSYSTEM, HIGH);
delay(PERIOD_BLINK);
digitalWrite(PIN_LEDSYSTEM, LOW);
delay(PERIOD_BLINK);
//
CounterDebug++;
UartUSB.print("Esp32Uart-0-USB> ");
UartUSB.println(CounterDebug);
//
UartPCA.print("Esp32Uart-1-PCA> ");
UartPCA.println(CounterDebug);
//
UartPCB.print("Esp32Uart-2-PCB> ");
UartPCB.println(CounterDebug);
}
Download des VSCode-Projekts:
2206051130_VSEsp32Uart_01V01.zip
WebSites
Module
Elektronik
Uart