ESP32 UART

Introduction to UART


UART(Universal Asynchronous Receiver/Transmitter)序列埠

BASICS OF UART COMMUNICATION

DB9 Connector

Protocol 通訊協定

  • Standard Packet : 8 data bits, even parity, 1 stop bit
    • If the parity bit is a 0 (even parity), the 1 bits in the data frame should total to an even number.
    • If the parity bit is a 1 (odd parity), the 1 bits in the data frame should total to an odd number. RS232 的Vpp電壓較高,有 6V~30V;UART 則是較低的 3.3V 或 5V
      RS232 為負邏輯, UART 為正邏輯,因此兩者波形是反相的
      Baud Rate

The main differences between RS-232, RS-422 and RS-485


NodeMCU-32S pinout


Arduino Serial


[Homework]: UART_read.ino

int incomingByte = 0; // for incoming serial data

void setup() {
  Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
  Serial.println("Serial port begin at baud=9600...");
}

void loop() {
  // reply only when you receive data:
  if (Serial.available() > 0) {
    // read the incoming byte:
    incomingByte = Serial.read();

    // show what you got:
    Serial.print("Received: ");
    Serial.println(incomingByte, HEX);
  }
}
  • Create code
  • run on NodeMCU-32S & enter “Hello” on serail monitor to verify

[Homework]: Examples>04.Communication>SerialPassThrough

  • Verify SerialPassThrough.ino
  • Connect TX1 to RX1 * Keyin text on serial-monitor to test it




Arduino SoftwareSerial

  • SoftwareSerial()
  • available()
  • begin()
  • isListening()
  • overflow()
  • peek()
  • read()
  • print()
  • println()
  • listen()
  • write()
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup()
{
  // Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Native USB only
  }


  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(38400);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

Peripheral/Sensor using UART

This site was last updated June 18, 2023.