Uart - VSCode mit STM32F103 ("BluePill")
          
         
        Quellen
        grauonline.de : 
ARDUINO GOES STM32
        Übersicht
        Das Stm32F103Board stellt dem Benutzer unter VSCode drei UARTs zur Verfügung: 
          •  STM32-UART1: Serial1 
          •  STM32-UART2: Serial2 
          •  STM32-UART3: Serial3 
        
Hardware
        Pin-Layout des STM32F103Boards: 
        
          
          Pin-Belegung STM32F103Board
        
        
        Die UARTs sind standardmässig folgenden Pins zugeordnet: 
        
        
          
            |  UART     | 
             Software     | 
             Pin TxD     | 
             Pin RxD     | 
             Note             | 
          
          
            | UART1 | 
            Serial1 | 
            PA9 | 
            PA10 | 
            Serial1 | 
          
          
            | UART2 | 
            Serial2 | 
            PA2 | 
            PA3 | 
            Serial2 | 
          
          
            | UART3 | 
            Serial | 
            PB10 | 
            PB11 | 
            Serial3 | 
          
        
        
        
        Bemerkung : Der von 
STMicroelectronics vorgesehene und notwendige Standard-USB-Treiber
        besitzt unter VSCode leider (noch) keine Funktionalität und Uart0 bleibt daher unberücksichtigt.
        (Download von Original STM-Seite:   
STM32 Virtual COM Port Driver ).
        
        
        (Lokale Download-Alternative:   
en.stsw-stm32102.zip )
        
        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 vier UARTs beim STM32F103Board
        
        
        Software
        
        Unter der Software "VisualStudioCode" (kürzer "VSCode") wählt der Benutzer den korrekten 
        Prozessor STM32F103C8T6 bei der Einrichtung eines neuen Projekts aus: 
        
        
          
          VSCode mit STM32F103Board - Neues Projekt
        
        
          
          VSCode mit STM32F103Board - main.cpp
        
        Im "DeviceManger" unter "Port (COM & LPT)" erkennt der Benutzer alle real 
        verfügbaren seriellen UART-Schnittstellen:
        
        
          
          DeviceManager mit COM-Ports
        
        
        Leider steht die UART USBSerial dem Benutzer unter VSCode aktuell nicht 
        zur Verfügung, daher kann der Benutzer nur auf folgende drei UARTs zugreifen:         
        
          •  3x UART-USB-Converter: COM30, COM31, COM32 
        
        Beispiel "STM32F103 mit UART0, UART1, UART2 und UART3 im Terminalbetrieb" 
 
        zeigt den Protokoll-Mitschnitt des Transmits aller drei UART-Schnittstellen im PC:
        
        
          
          STM32F103 mit UART1, UART2 und UART3 im Terminalbetrieb
        
               
        Den zugehörigen Quelltext für das STM32F103Board zeigt das Listing:
        
        
               
  //
  #include 
  #include 
  //
  //----------------------
  //  Define
  //----------------------
  const int PIN_LEDSYSTEM   = PC13;
  const int PERIOD_BLINK    = 133;   // [ms]
  // Uart1 - A
  const int PIN_UART1_TXD   = PA9;
  const int PIN_UART1_RXD   = PA10;
  // Uart2 - B
  const int PIN_UART2_TXD   = PA2;
  const int PIN_UART2_RXD   = PA3;
  // Uart3 - C
  const int PIN_UART3_TXD   = PB10;
  const int PIN_UART3_RXD   = PB11;
  //
  HardwareSerial Serial1(PIN_UART1_RXD, PIN_UART1_TXD);
  // NC HardwareSerial Serial2(PIN_UART2_RXD, PIN_UART2_TXD);
  HardwareSerial Serial3(PIN_UART3_RXD, PIN_UART3_TXD);
  //
  #define UartUSB Serial
  #define UartPCA Serial1
  #define UartPCB Serial2
  #define UartPCC Serial3
  //
  //----------------------
  //  Global
  //----------------------
  int CounterDebug = 0;
  //
  //----------------------
  //  Main - Setup
  //----------------------
  void setup(void)
  {
    pinMode(PIN_LEDSYSTEM, OUTPUT);
    //
    UartPCA.begin(115200, SERIAL_8N1);
    UartPCB.begin(115200, SERIAL_8N1);
    UartPCC.begin(115200, SERIAL_8N1);
    delay(333);
    //
    UartPCA.println("\r\n*** Esp32Uart-1-PCA ***");
    UartPCB.println("\r\n*** Esp32Uart-2-PCB ***");
    UartPCC.println("\r\n*** Esp32Uart-3-PCC ***");
  }
  //
  //----------------------
  //  Main - Loop
  //----------------------
  void loop(void) 
  {
    digitalWrite(PIN_LEDSYSTEM, HIGH);
    delay(PERIOD_BLINK);
    digitalWrite(PIN_LEDSYSTEM, LOW);
    delay(PERIOD_BLINK);
    //
    CounterDebug++;
    //
    UartPCA.print("Esp32Uart-1-PCA> ");
    UartPCA.println(CounterDebug);
    //
    UartPCB.print("Esp32Uart-2-PCB> ");
    UartPCB.println(CounterDebug);  
    //
    UartPCC.print("Esp32Uart-3-PCC> ");
    UartPCC.println(CounterDebug);  
  }
        
 
        
        Download des Listings: 
2206042044_VSStm32F103Uart_01V01.zip 
        
        
        WebSites   
        Module   
        Elektronik   
        Uart