Uart - ArduinoIDE mit ESP32
Quellen
circuits4you.com :
ESP32 Hardware Serial2 Example
Übersicht
Das ESP32UnoBoard stellt dem Benutzer unter der ArduinoIDE 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 "ArduinoIDE" stellt der Benutzer den korrekten Prozessor ESP32 ein:
ArduinoIDE mit ESP32(-UnoBoard)
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: COM50, COM55
für den ESP32 zur Datenübertragung bereit - die ESP32-USB-Schnittstelle benötigt
die ArduinoIDE ausschliesslich zur Programmierung und daher steht danach 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 UART0, UART1 und UART2 im Terminalbetrieb
Den zugehörigen Quelltext für das Esp32UnoBoard 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 Listings:
2205292145_Esp32Uart_01V01_AI.zip
WebSites
Module
Elektronik
Uart