#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()returnstrue
 | 
|  | 
| 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
- trueif 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
- trueif 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
- trueif a byte was received,- falseotherwise
 
 
  
  | 
        
          | 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 lengthbytes |  |  | 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 lengthbytes |  | 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
- trueif data has been buffered,- falseif buffer is full
 
 
The documentation for this class was generated from the following file:
- architecture/interface/uart.hpp