#include <modm/platform/uart/uart.hpp>
 | 
| enum   | Interrupt : uint32_t { Interrupt::ParityError = USART_CR1_PEIE, 
Interrupt::TxEmpty = USART_CR1_TXEIE, 
Interrupt::TxComplete = USART_CR1_TCIE, 
Interrupt::RxNotEmpty = USART_CR1_RXNEIE
 } | 
|   | 
| enum   | InterruptFlag : uint32_t {  
  InterruptFlag::TxEmpty = USART_SR_TXE, 
InterruptFlag::TxComplete = USART_SR_TC, 
InterruptFlag::RxNotEmpty = USART_SR_RXNE, 
InterruptFlag::OverrunError = USART_SR_ORE, 
 
  InterruptFlag::FramingError = USART_SR_FE, 
InterruptFlag::ParityError = USART_SR_PE
 
 } | 
|   | 
| enum   | LastBitClockPulse : uint32_t { DoNotOutput = 0b0, 
Output = USART_CR2_LBCL
 } | 
|   | 
| enum   | Parity : uint32_t { Disabled = 0, 
Even = USART_CR1_PCE, 
Odd = USART_CR1_PCE | USART_CR1_PS
 } | 
|   | 
| enum   | SpiClock : uint32_t { Disabled = 0b0, 
Enabled = USART_CR2_CLKEN
 } | 
|   | 
| enum   | SpiDataMode : uint32_t { Mode0 = 0b00, 
Mode1 = USART_CR2_CPHA, 
Mode2 = USART_CR2_CPOL, 
Mode3 = USART_CR2_CPOL | USART_CR2_CPHA
 } | 
|   | 
| enum   | WordLength : uint32_t { Bit8 = 0, 
Bit9 = USART_CR1_M
 } | 
|   | 
 | 
| 
  | MODM_FLAGS32 (Interrupt) | 
|   | 
| 
  | MODM_FLAGS32 (InterruptFlag) | 
|   | 
 | 
| 
template<class... Signals>  | 
| static void  | connect (Gpio::InputType InputTypeRx=Gpio::InputType::PullUp, Gpio::OutputType OutputTypeTx=Gpio::OutputType::PushPull) | 
|   | 
| template<class SystemClock , baudrate_t baudrate, percent_t tolerance = pct(1)>  | 
| static void  | initialize (Hal::Parity parity=Hal::Parity::Disabled, Hal::WordLength length=Hal::WordLength::Bit8) | 
|   | 
| 
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  | transmitBufferSize () | 
|   | 
| 
static std::size_t  | discardTransmitBuffer () | 
|   | 
| 
static bool  | read (uint8_t &data) | 
|   | 
| 
static std::size_t  | read (uint8_t *buffer, std::size_t) | 
|   | 
| 
static std::size_t  | receiveBufferSize () | 
|   | 
| 
static std::size_t  | discardReceiveBuffer () | 
|   | 
| 
static bool  | hasError () | 
|   | 
| 
static void  | clearError () | 
|   | 
| 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 
  | 
|   | 
| template<class... Signals>  | 
| static void  | connect () | 
|   | 
| 
static bool  | getInterruptFlag () | 
|   | Read an interrupt flag. 
  | 
|   | 
| 
static void  | getParameter () | 
|   | returns a parameter 
  | 
|   | 
| template<class SystemClock , baudrate_t baudrate, percent_t tolerance = 10_pct>  | 
| static void  | initialize () | 
|   | 
| 
static void  | setParameter () | 
|   | sets a parameter 
  | 
|   | 
 | 
| 
static constexpr size_t  | RxBufferSize = 0 | 
|   | 
| 
static constexpr size_t  | TxBufferSize = 0 | 
|   | 
template<class Hal, typename... Buffers>
struct modm::platform::BufferedUart< Hal, Buffers >
Universal asynchronous receiver transmitter (with modular buffers)
- Author
 - Kevin Laeufer 
 
- 
Niklas Hauser 
 
- 
Dima Barsky 
 
 
| Enum Values | Documentation | 
|---|
| ParityError  | Call interrupt when a parity error occurred.  
 | 
| TxEmpty  | Call interrupt when transmit register is empty (i.e. the byte has been transfered to the shift out register.  
 | 
| TxComplete  | Called when the byte was completely transmitted.  
 | 
| RxNotEmpty  | Call interrupt when char received (RXNE) or overrun occurred (ORE)  
 | 
 
 
| Enum Values | Documentation | 
|---|
| TxEmpty  | Set if the transmit data register is empty.  
 | 
| TxComplete  | Set if the transmission is complete.  
 | 
| RxNotEmpty  | Set if the receive data register is not empty.  
 | 
| OverrunError  | Set if receive register was not cleared.  
 | 
| FramingError  | Set if a de-synchronization, excessive noise or a break character is detected.  
 | 
| ParityError  | Set if a parity error was detected.  
 | 
 
 
  
  
      
        
          | 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  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inheritedstatic   | 
  
 
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.  | 
  
   
 
 
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
 - 
  
    | SystemClock | the currently active system clock  | 
    | baudrate | desired baud rate in Hz  | 
    | tolerance | the allowed absolute tolerance for the resulting baudrate  | 
  
   
 
 
template<class Hal , typename... Buffers> 
template<class SystemClock , baudrate_t baudrate, percent_t tolerance = pct(1)> 
  
  
      
        
          | static void modm::platform::BufferedUart< Hal, Buffers >::initialize  | 
          ( | 
          Hal::Parity  | 
          parity = Hal::Parity::Disabled,  | 
         
        
           | 
           | 
          Hal::WordLength  | 
          length = Hal::WordLength::Bit8  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
inlinestatic   | 
  
 
- Warning
 - Remember to set word length correctly when using the parity bit! 
 
 
 
The documentation for this struct was generated from the following file: