modm API documentation

#include <modm/platform/uart/uart_1.hpp>

Inheritance diagram for modm::platform::Uart1:
modm::Uart modm::PeripheralDriver

Public Types

enum  Parity : uint32_t { Even = UART_UARTLCR_H_PEN_BITS | UART_UARTLCR_H_EPS_BITS, Odd = UART_UARTLCR_H_PEN_BITS, Disabled = 0 }
 
enum  WordLength : uint32_t { Bit5 = 0 << UART_UARTLCR_H_WLEN_LSB, Bit6 = 1 << UART_UARTLCR_H_WLEN_LSB, Bit7 = 2 << UART_UARTLCR_H_WLEN_LSB, Bit8 = 3 << UART_UARTLCR_H_WLEN_LSB }
 
enum  StopBits : uint32_t { Bit1 = 0, Bit2 = UART_UARTLCR_H_STP2_BITS }
 

Static Public Member Functions

template<class... Signals>
static void connect ()
 
static void reset ()
 
static void unreset ()
 
static void setFormat (Parity parity, WordLength length, StopBits stop)
 
template<class SystemClock , baudrate_t baudrate, percent_t tolerance = pct(1)>
static baudrate_t setBaudrate ()
 
template<class SystemClock , baudrate_t baudrate, percent_t tolerance = pct(1)>
static void initialize (Parity parity=Parity::Disabled, WordLength length=WordLength::Bit8, StopBits stop=StopBits::Bit1)
 
static void writeBlocking (uint8_t data)
 
static void writeBlocking (const uint8_t *data, std::size_t length)
 
static void flushWriteBuffer ()
 
static bool write (uint8_t data)
 
static std::size_t write (const uint8_t *data, std::size_t length)
 
static bool isWriteFinished ()
 
static std::size_t discardTransmitBuffer ()
 
static bool read (uint8_t &data)
 
static std::size_t read (uint8_t *buffer, std::size_t length)
 
static std::size_t discardReceiveBuffer ()
 
static void acknowledgeInterruptFlag ()
 
template<uint64_t available, uint64_t requested, percent_t tolerance>
static void assertBaudrateInTolerance ()
 
template<double available, double requested, percent_t tolerance>
static void assertDurationInTolerance ()
 
static void clearError ()
 Reset the sticky error indication.
 
static void configurePurpose ()
 configures a peripheral for a specific purpose
 
static bool getInterruptFlag ()
 Read an interrupt flag.
 
static void getParameter ()
 returns a parameter
 
static bool hasError ()
 
template<class SystemClock , baudrate_t baudrate, percent_t tolerance = 10_pct>
static void initialize ()
 
static std::size_t receiveBufferSize ()
 
static void setParameter ()
 sets a parameter
 
static std::size_t transmitBufferSize ()
 

Static Public Attributes

static constexpr size_t RxBufferSize = 32
 
static constexpr size_t TxBufferSize = 32
 

Detailed Description

Universal asynchronous receiver transmitter (UART)

This implementation uses the hardware buffer and the software buffer. A software buffer is only used if more than 32 bytes of buffering is requested.

There is no FIFO-not-full flag. It's only possible to check if the FIFO is completely empty. This makes it impossible to add data to the FIFO after the first byte is put into the FIFO.

After detecting that the FIFO is empty (THRE interrupt) the charsLeft variable is set to 32 (= size of FIFO) and some accounting is done in this class.

Author
Andrey Kunitsyn

Member Function Documentation

static void modm::PeripheralDriver::acknowledgeInterruptFlag ( )
inheritedstatic

Acknowledge an interrupt flag.

We use acknowledge here, since it describes the intention rather than the actual implementation.

template<uint64_t available, uint64_t requested, percent_t tolerance>
static void modm::PeripheralDriver::assertBaudrateInTolerance ( )
inheritedinlinestatic

Since baudrates are usually generated by prescaling a system clock, only several distinct values can be generated. This method checks if the user requested baudrate is within error tolerance of the system achievable baudrate.

static bool modm::Uart::hasError ( )
inheritedstatic
Returns
true if an error occured during any write or read
template<class SystemClock , baudrate_t baudrate, percent_t tolerance = 10_pct>
static void modm::Uart::initialize ( )
inheritedstatic

Initializes the hardware and sets the baudrate.

Template Parameters
SystemClockthe currently active system clock
baudratedesired baud rate in Hz
tolerancethe allowed absolute tolerance for the resulting baudrate
static std::size_t modm::Uart::receiveBufferSize ( )
inheritedstatic
Returns
the size of the receive FIFO queue.
static std::size_t modm::Uart::transmitBufferSize ( )
inheritedstatic
Returns
the size of the transmit FIFO queue.

The documentation for this class was generated from the following files: