UART Component

Installation

The component requires ESP-IDF 5.0 and higher and is installed using IDF Component Manager.

Add this to the idf_component.yml in the project main directory or in the component directory:

dependencies:
  pl_uart:
    path: component
    git: https://github.com/plasmapper/uart-esp-cpp.git

Add this to the source code:

#include "pl_uart.h"

Add extern "C" to the app_main function:

extern "C" void app_main(void) {...}

Add this to the sdkconfig.defaults in the project directory or configure the values using Project Configuration:

CONFIG_COMPILER_CXX_RTTI=y

Features

  1. PL::Uart - a PL::HardwareInterface and PL::Stream implementation for ESP internal UART ports. PL::Uart::Initialize() installs the UART driver. PL::Uart::Enable() enables the port (discarding the incoming data). A number of Get And Set methods get and set UART port parameters. A number of PL::Uart::Read() and PL::Uart::Write() functions read and write from/to the port. Reading and writing to/from PL::Buffer object checks the data size and locks the object so these methods can be used in multithreaded applications.

  2. PL::UartServer - a PL::Server implementation for ESP internal UART ports. The descendant class should override PL::UartServer::HandleRequest() to handle the client request. PL::UartServer::HandleRequest() is only called when the UART port is enabled and there is incoming data in the internal buffer.

Examples

API reference