#include <modm/architecture/interface/uart.hpp>
|
template<class... Signals> |
static void | connect () |
|
template<class SystemClock , baudrate_t baudrate, percent_t tolerance = 10_pct> |
static void | initialize () |
|
static void | writeBlocking (uint8_t data) |
| Write a single byte and wait for completion.
|
|
static void | writeBlocking (const uint8_t *data, std::size_t length) |
| Write a block of bytes and wait for completion.
|
|
static void | flushWriteBuffer () |
| Flush the write buffer, waits in a while loop until isWriteFinished() returns true
|
|
static bool | write (uint8_t data) |
|
static std::size_t | write (const uint8_t *data, std::size_t length) |
|
static bool | isWriteFinished () |
|
static bool | read (uint8_t &data) |
|
static std::size_t | read (uint8_t *data, std::size_t length) |
|
static std::size_t | receiveBufferSize () |
|
static std::size_t | discardReceiveBuffer () |
|
static std::size_t | transmitBufferSize () |
|
static std::size_t | discardTransmitBuffer () |
|
static bool | hasError () |
|
static void | clearError () |
| Reset the sticky error indication.
|
|
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 | configurePurpose () |
| configures a peripheral for a specific purpose
|
|
static bool | getInterruptFlag () |
| Read an interrupt flag.
|
|
static void | getParameter () |
| returns a parameter
|
|
static void | setParameter () |
| sets a parameter
|
|
|
static constexpr size_t | RxBufferSize = 16 |
| Size of the receive buffer.
|
|
static constexpr size_t | TxBufferSize = 16 |
| Size of the transmit buffer.
|
|
Interface of an Uart.
Asynchronous and synchronous, buffered access to the Uart.
- Author
- Niklas Hauser
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.
template<class... Signals>
static void modm::Uart::connect |
( |
| ) |
|
|
static |
Connect GPIOs to the peripheral and configure them.
This configures the Tx and Rx signals as output and input and connects them.
- Template Parameters
-
Signals | One Tx and one Rx signal are required and can be passed out-of-order. |
static std::size_t modm::Uart::discardReceiveBuffer |
( |
| ) |
|
|
static |
Empty the receive FIFO queue and hardware buffer.
- Returns
- the size of the deleted FIFO queue.
static std::size_t modm::Uart::discardTransmitBuffer |
( |
| ) |
|
|
static |
Empty the transmit FIFO queue and hardware buffer.
- Returns
- the size of the deleted FIFO queue.
static bool modm::Uart::hasError |
( |
| ) |
|
|
static |
- 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 |
( |
| ) |
|
|
static |
Initializes the hardware and sets the baudrate.
- Template Parameters
-
SystemClock | the currently active system clock |
baudrate | desired baud rate in Hz |
tolerance | the allowed absolute tolerance for the resulting baudrate |
static bool modm::Uart::isWriteFinished |
( |
| ) |
|
|
static |
- Returns
true
if the buffer is empty and the last byte has been sent
static bool modm::Uart::read |
( |
uint8_t & |
data | ) |
|
|
static |
Read a single byte.
- Parameters
-
[out] | data | Byte read, if any |
- Returns
true
if a byte was received, false
otherwise
static std::size_t modm::Uart::read |
( |
uint8_t * |
data, |
|
|
std::size_t |
length |
|
) |
| |
|
static |
Read a block of bytes.
- Parameters
-
[out] | data | Pointer to a buffer big enough to store length bytes |
| length | Number of bytes to be read |
- Returns
- Number of bytes which could be read, maximal
length
static std::size_t modm::Uart::receiveBufferSize |
( |
| ) |
|
|
static |
- Returns
- the size of the receive FIFO queue.
static std::size_t modm::Uart::transmitBufferSize |
( |
| ) |
|
|
static |
- Returns
- the size of the transmit FIFO queue.
static std::size_t modm::Uart::write |
( |
const uint8_t * |
data, |
|
|
std::size_t |
length |
|
) |
| |
|
static |
Pushes a block of bytes into the buffer.
- Parameters
-
data | Pointer to a buffer big enough to store length bytes |
length | Number of bytes to be written |
- Returns
- the number of bytes pushed into the buffer, maximal
length
static bool modm::Uart::write |
( |
uint8_t |
data | ) |
|
|
static |
Pushes a single byte into the buffer.
- Returns
true
if data has been buffered, false
if buffer is full
The documentation for this class was generated from the following file:
- architecture/interface/uart.hpp