Paparazzi UAS  v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
uart.h File Reference

arch independent UART (Universal Asynchronous Receiver/Transmitter) API More...

#include "mcu_periph/uart_arch.h"
#include "pprzlink/pprzlink_device.h"
#include "std.h"
+ Include dependency graph for uart.h:

Go to the source code of this file.

Data Structures

struct  uart_periph
 UART peripheral. More...
 

Macros

#define UART_RX_BUFFER_SIZE   128
 
#define UART_TX_BUFFER_SIZE   128
 
#define UART_DEV_NAME_SIZE   16
 
#define UBITS_7   7
 
#define UBITS_8   8
 
#define USTOP_1   1
 
#define USTOP_2   2
 
#define UPARITY_NO   0
 
#define UPARITY_ODD   1
 
#define UPARITY_EVEN   2
 

Functions

void uart_periph_init (struct uart_periph *p)
 
void uart_periph_set_baudrate (struct uart_periph *p, uint32_t baud)
 Set baudrate. More...
 
void uart_periph_set_bits_stop_parity (struct uart_periph *p, uint8_t bits, uint8_t stop, uint8_t parity)
 Set parity and stop bits. More...
 
void uart_periph_set_mode (struct uart_periph *p, bool tx_enabled, bool rx_enabled, bool hw_flow_control)
 Set mode (not necessary, or can be set by SerialConfig) More...
 
void uart_periph_invert_data_logic (struct uart_periph *p, bool invert_rx, bool invert_tx)
 
void uart_put_byte (struct uart_periph *p, long fd, uint8_t data)
 Uart transmit implementation. More...
 
void uart_put_buffer (struct uart_periph *p, long fd, const uint8_t *data, uint16_t len)
 Uart transmit buffer implementation. More...
 
bool uart_check_free_space (struct uart_periph *p, long *fd, uint16_t len)
 
void uart_send_message (struct uart_periph *p, long fd)
 
uint8_t uart_getch (struct uart_periph *p)
 
uint16_t uart_char_available (struct uart_periph *p)
 Check UART for available chars in receive buffer. More...
 
void uart_arch_init (void)
 

Detailed Description

arch independent UART (Universal Asynchronous Receiver/Transmitter) API

Definition in file uart.h.


Data Structure Documentation

struct uart_periph

UART peripheral.

Definition at line 70 of file uart.h.

+ Collaboration diagram for uart_periph:
Data Fields
int baudrate UART Baudrate.
char dev[UART_DEV_NAME_SIZE] UART Dev (linux)
struct link_device device Generic device interface.
volatile uint16_t fe_err framing error counter
void * init_struct User init struct.
volatile uint16_t ne_err noise error counter
volatile uint16_t ore overrun error counter
void * reg_addr UART Register.
uint8_t rx_buf[UART_RX_BUFFER_SIZE] Receive buffer.
uint16_t rx_extract_idx
uint16_t rx_insert_idx
uint8_t tx_buf[UART_TX_BUFFER_SIZE] Transmit buffer.
uint16_t tx_extract_idx
uint16_t tx_insert_idx
volatile uint8_t tx_running

Macro Definition Documentation

#define UART_DEV_NAME_SIZE   16

Definition at line 51 of file uart.h.

#define UART_RX_BUFFER_SIZE   128

Definition at line 39 of file uart.h.

#define UART_TX_BUFFER_SIZE   128

Definition at line 47 of file uart.h.

#define UBITS_7   7

Definition at line 57 of file uart.h.

#define UBITS_8   8

Definition at line 58 of file uart.h.

#define UPARITY_EVEN   2

Definition at line 65 of file uart.h.

#define UPARITY_NO   0

Definition at line 63 of file uart.h.

#define UPARITY_ODD   1

Definition at line 64 of file uart.h.

#define USTOP_1   1

Definition at line 60 of file uart.h.

#define USTOP_2   2

Definition at line 61 of file uart.h.

Function Documentation

void uart_arch_init ( void  )

Definition at line 54 of file uart_arch.c.

References uart_thread().

Referenced by mcu_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool uart_check_free_space ( struct uart_periph p,
long *  fd,
uint16_t  len 
)
void uart_periph_invert_data_logic ( struct uart_periph p,
bool  invert_rx,
bool  invert_tx 
)

Definition at line 299 of file uart.c.

Referenced by sbus_common_init().

+ Here is the caller graph for this function:

void uart_periph_set_baudrate ( struct uart_periph p,
uint32_t  baud 
)
void uart_periph_set_bits_stop_parity ( struct uart_periph p,
uint8_t  bits,
uint8_t  stop,
uint8_t  parity 
)

Set parity and stop bits.

Definition at line 885 of file uart_arch.c.

References SerialInit::conf, uart_periph::init_struct, uart_periph::reg_addr, serial_port_set_bits_stop_parity(), UBITS_7, UPARITY_EVEN, UPARITY_ODD, and USTOP_2.

Referenced by actuators_sbus_init(), high_speed_logger_direct_memory_init(), hott_common_init(), and sbus_common_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void uart_periph_set_mode ( struct uart_periph p,
bool  tx_enabled,
bool  rx_enabled,
bool  hw_flow_control 
)

Set mode (not necessary, or can be set by SerialConfig)

Definition at line 871 of file uart_arch.c.

References mode, and uart_periph::reg_addr.

Referenced by hott_enable_receiver(), and hott_enable_transmitter().

+ Here is the caller graph for this function:

void uart_put_buffer ( struct uart_periph p,
long  fd,
const uint8_t data,
uint16_t  len 
)

Uart transmit buffer implementation.

Definition at line 994 of file uart_arch.c.

References uart_periph::init_struct, uart_periph::tx_buf, uart_periph::tx_extract_idx, uart_periph::tx_insert_idx, SerialInit::tx_mtx, SerialInit::tx_sem, uart_put_byte(), and UART_TX_BUFFER_SIZE.

Referenced by uart_periph_init().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void uart_send_message ( struct uart_periph p,
long  fd 
)

Definition at line 1024 of file uart_arch.c.

References uart_periph::init_struct, SerialInit::tx_mtx, and SerialInit::tx_sem.

Referenced by uart_periph_init().

+ Here is the caller graph for this function: