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:
plasmapper/pl_uart: "^1.1.0"
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
PL::Uart- aPL::HardwareInterfaceandPL::Streamimplementation 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 ofPL::Uart::Read()andPL::Uart::Write()functions read and write from/to the port. Reading and writing to/fromPL::Bufferobject checks the data size and locks the object so these methods can be used in multithreaded applications.PL::StreamServercan be used withPL::Uartto implement a stream server for ESP internal UART ports. The descendant class should overridePL::StreamServer::HandleRequest()to handle the client request.PL::StreamServer::HandleRequest()is only called when there is incoming data in the internal buffer.
Thread safety
Class method thread safety is implemented by having the PL::Lockable as a base class and creating the class object lock guard at the beginning of the methods.
Examples
API reference
- Types
- PL::Uart class
PL::UartUart()Lock()Unlock()Initialize()Enable()Disable()EnableLoopback()DisableLoopback()Read()Write()IsEnabled()GetReadableSize()GetReadTimeout()SetReadTimeout()GetBaudRate()SetBaudRate()GetDataBits()SetDataBits()GetParity()SetParity()GetStopBits()SetStopBits()GetFlowControl()SetFlowControl()SetMode()GetName()SetName()Read()ReadUntil()ReadUntil()ReadUntil()Write()Write()FlushReadBuffer()enabledEventdisabledEventdefaultNameminBufferSizedefaultReadTimeoutdefaultBaudRatedefaultDataBitsdefaultParitydefaultStopBitsdefaultFlowControldefaultMode