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