34 #ifndef UART_HALF_DUPLEX_DEFAULT_TIMEOUT_US 
   35 #define UART_HALF_DUPLEX_DEFAULT_TIMEOUT_US (20000LU)  
   47 #define UART_HALF_DUPLEX_DIR_NONE { NULL, NULL, NULL }   
uint_fast8_t uart_t
Define default UART type identifier.
 
@ UART_NOBAUD
given symbol rate is not applicable
 
@ UART_OK
everything in order
 
@ UART_NODEV
invalid UART device given
 
@ UART_INTERR
all other internal errors
 
@ UART_NOMODE
given mode is not applicable
 
static void uart_half_duplex_set_tx(uart_half_duplex_t *dev)
Set the half-duplex UART bus in TX mode.
 
int uart_half_duplex_init(uart_half_duplex_t *dev, uint8_t *buffer, size_t buffer_max_size, const uart_half_duplex_params_t *params)
Initialize the half-duplex UART bus to communicate with devices.
 
size_t uart_half_duplex_recv(const uart_half_duplex_t *dev, size_t size)
Recv data an fill the driver's buffer.
 
size_t uart_half_duplex_send(const uart_half_duplex_t *dev, size_t size)
Send the data contained in the driver's buffer.
 
static void uart_half_duplex_set_rx(uart_half_duplex_t *dev)
Set the half-duplex UART bus in RX mode.
 
@ UART_HALF_DUPLEX_NOBAUD
given baudrate is not applicable
 
@ UART_HALF_DUPLEX_NOMODE
given mode is not applicable
 
@ UART_HALF_DUPLEX_NOBUFF
invalid buffer given
 
@ UART_HALF_DUPLEX_INTERR
all other internal errors
 
@ UART_HALF_DUPLEX_OK
everything in order
 
@ UART_HALF_DUPLEX_NODEV
invalid UART device given
 
half-duplex UART direction management method type
 
Configuration for half-duplex UART.
 
uart_t uart
the half-duplex UART bus to use
 
uart_half_duplex_dir_t dir
the direction management method
 
uint32_t baudrate
the baudrate to use
 
Descriptor struct for half-duplex UART.
 
uint8_t * buffer
the buffer used for TX and RX
 
size_t size
the number of available elements for TX/RX
 
uart_half_duplex_params_t params
the half-duplex UART configuration
 
uint32_t timeout_us
the maximum duration (in microseconds) for waiting data
 
size_t buffer_max_size
the buffer size
 
Low-level UART peripheral driver interface definition.