Paparazzi UAS  v6.2_unstable
Paparazzi is a free software Unmanned Aircraft System.
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   256
 
#define UART_TX_BUFFER_SIZE   256
 
#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...
 
int 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)
 
int 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

◆ uart_periph

struct uart_periph

UART peripheral.

Definition at line 72 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

◆ UART_DEV_NAME_SIZE

#define UART_DEV_NAME_SIZE   16

Definition at line 53 of file uart.h.

◆ UART_RX_BUFFER_SIZE

#define UART_RX_BUFFER_SIZE   256

Definition at line 40 of file uart.h.

◆ UART_TX_BUFFER_SIZE

#define UART_TX_BUFFER_SIZE   256

Definition at line 49 of file uart.h.

◆ UBITS_7

#define UBITS_7   7

Definition at line 59 of file uart.h.

◆ UBITS_8

#define UBITS_8   8

Definition at line 60 of file uart.h.

◆ UPARITY_EVEN

#define UPARITY_EVEN   2

Definition at line 67 of file uart.h.

◆ UPARITY_NO

#define UPARITY_NO   0

Definition at line 65 of file uart.h.

◆ UPARITY_ODD

#define UPARITY_ODD   1

Definition at line 66 of file uart.h.

◆ USTOP_1

#define USTOP_1   1

Definition at line 62 of file uart.h.

◆ USTOP_2

#define USTOP_2   2

Definition at line 63 of file uart.h.

Function Documentation

◆ uart_arch_init()

void uart_arch_init ( void  )

Definition at line 54 of file uart_arch.c.

References uart_mutex, and uart_thread().

Referenced by mcu_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ uart_char_available()

◆ uart_check_free_space()

int uart_check_free_space ( struct uart_periph p,
long *  fd,
uint16_t  len 
)

Definition at line 1078 of file uart_arch.c.

References fd, p, SerialInit::tx_mtx, and UART_TX_BUFFER_SIZE.

Referenced by send_buffer_to_uart(), tunnel_event(), and uart_periph_init().

+ Here is the caller graph for this function:

◆ uart_getch()

◆ uart_periph_init()

void uart_periph_init ( struct uart_periph p)

Definition at line 231 of file uart.c.

References DefaultPeriodic, p, register_periodic_telemetry(), send_uart_err(), uart_char_available(), uart_check_free_space(), uart_getch(), uart_periph_set_baudrate(), uart_put_buffer(), uart_put_byte(), and uart_send_message().

Referenced by high_speed_logger_direct_memory_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ uart_periph_invert_data_logic()

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:

◆ uart_periph_set_baudrate()

void uart_periph_set_baudrate ( struct uart_periph p,
uint32_t  baud 
)

Set baudrate.

Definition at line 984 of file uart_arch.c.

References uart_periph::baudrate, SerialInit::conf, p, uart_periph::reg_addr, serial_port_set_baudrate(), and uart_periph_open().

Referenced by actuators_sbus_init(), gps_ubx_ucenter_autobaud(), gps_ubx_ucenter_configure(), hott_common_init(), px4flash_event(), sbus_common_init(), and uart_periph_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ uart_periph_set_bits_stop_parity()

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 1014 of file uart_arch.c.

References SerialInit::conf, p, 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:

◆ uart_periph_set_mode()

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 999 of file uart_arch.c.

References mode, and p.

Referenced by hott_enable_receiver(), and hott_enable_transmitter().

+ Here is the caller graph for this function:

◆ uart_put_buffer()

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

Uart transmit buffer implementation.

Definition at line 1123 of file uart_arch.c.

References fd, p, SerialInit::tx_mtx, SerialInit::tx_sem, uart_put_byte(), and UART_TX_BUFFER_SIZE.

Referenced by actuators_ostrich_periodic(), if(), send_message(), and uart_periph_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ uart_put_byte()

void uart_put_byte ( struct uart_periph p,
long  fd,
uint8_t  data 
)

◆ uart_send_message()

void uart_send_message ( struct uart_periph p,
long  fd 
)

Definition at line 1153 of file uart_arch.c.

References fd, p, SerialInit::tx_mtx, and SerialInit::tx_sem.

Referenced by uart_periph_init().

+ Here is the caller graph for this function: