uart.h File Reference
#include "pico.h"
#include "hardware/structs/uart.h"
#include "hardware/regs/dreq.h"
Include dependency graph for uart.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define PARAM_ASSERTIONS_ENABLED_UART   0
 
#define PICO_UART_ENABLE_CRLF_SUPPORT   1
 
#define PICO_UART_DEFAULT_CRLF   0
 
#define PICO_DEFAULT_UART_BAUD_RATE   115200
 Default baud rate.
 
#define uart0   ((uart_inst_t *)uart0_hw)
 Identifier for UART instance 0. More...
 
#define uart1   ((uart_inst_t *)uart1_hw)
 Identifier for UART instance 1.
 

Typedefs

typedef struct uart_inst uart_inst_t
 

Enumerations

enum  uart_parity_t { UART_PARITY_NONE, UART_PARITY_EVEN, UART_PARITY_ODD }
 UART Parity enumeration.
 

Functions

static uint uart_get_index (uart_inst_t *uart)
 Convert UART instance to hardware instance number. More...
 
static uart_inst_t * uart_get_instance (uint instance)
 
static uart_hw_tuart_get_hw (uart_inst_t *uart)
 
uint uart_init (uart_inst_t *uart, uint baudrate)
 Initialise a UART. More...
 
void uart_deinit (uart_inst_t *uart)
 DeInitialise a UART. More...
 
uint uart_set_baudrate (uart_inst_t *uart, uint baudrate)
 Set UART baud rate. More...
 
static void uart_set_hw_flow (uart_inst_t *uart, bool cts, bool rts)
 Set UART flow control CTS/RTS. More...
 
static void uart_set_format (uart_inst_t *uart, uint data_bits, uint stop_bits, uart_parity_t parity)
 Set UART data format. More...
 
static void uart_set_irq_enables (uart_inst_t *uart, bool rx_has_data, bool tx_needs_data)
 Setup UART interrupts. More...
 
static bool uart_is_enabled (uart_inst_t *uart)
 Test if specific UART is enabled. More...
 
static void uart_set_fifo_enabled (uart_inst_t *uart, bool enabled)
 Enable/Disable the FIFOs on specified UART. More...
 
static bool uart_is_writable (uart_inst_t *uart)
 Determine if space is available in the TX FIFO. More...
 
static void uart_tx_wait_blocking (uart_inst_t *uart)
 Wait for the UART TX fifo to be drained. More...
 
static bool uart_is_readable (uart_inst_t *uart)
 Determine whether data is waiting in the RX FIFO. More...
 
static void uart_write_blocking (uart_inst_t *uart, const uint8_t *src, size_t len)
 Write to the UART for transmission. More...
 
static void uart_read_blocking (uart_inst_t *uart, uint8_t *dst, size_t len)
 Read from the UART. More...
 
static void uart_putc_raw (uart_inst_t *uart, char c)
 Write single character to UART for transmission. More...
 
static void uart_putc (uart_inst_t *uart, char c)
 Write single character to UART for transmission, with optional CR/LF conversions. More...
 
static void uart_puts (uart_inst_t *uart, const char *s)
 Write string to UART for transmission, doing any CR/LF conversions. More...
 
static char uart_getc (uart_inst_t *uart)
 Read a single character from the UART. More...
 
static void uart_set_break (uart_inst_t *uart, bool en)
 Assert a break condition on the UART transmission. More...
 
void uart_set_translate_crlf (uart_inst_t *uart, bool translate)
 Set CR/LF conversion on UART. More...
 
static void uart_default_tx_wait_blocking (void)
 Wait for the default UART's TX FIFO to be drained.
 
bool uart_is_readable_within_us (uart_inst_t *uart, uint32_t us)
 Wait for up to a certain number of microseconds for the RX FIFO to be non empty. More...
 
static uint uart_get_dreq (uart_inst_t *uart, bool is_tx)
 Return the DREQ to use for pacing transfers to/from a particular UART instance. More...