Microchip® Advanced Software Framework

uart.h File Reference

Universal Asynchronous Receiver Transceiver (UART) driver for SAM.

Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.

#include "compiler.h"

Data Structures

struct  sam_uart_opt
 Option list for UART peripheral initialization. More...
 
struct  uart_config_optical
 

Macros

#define UART_MCK_DIV   16
 
#define UART_MCK_DIV_MAX_FACTOR   65535
 
#define UART_MCK_DIV_MIN_FACTOR   1
 

Typedefs

typedef struct sam_uart_opt sam_uart_opt_t
 Option list for UART peripheral initialization. More...
 

Enumerations

enum  uart_optical_cmp_threshold {
  UART_RX_CMP_THRESHOLD_VDDIO_DIV_10_0 = UART_MR_OPT_CMPTH_VDDIO_DIV10,
  UART_RX_CMP_THRESHOLD_VDDIO_DIV_5_0 = UART_MR_OPT_CMPTH_VDDIO_DIV5,
  UART_RX_CMP_THRESHOLD_VDDIO_DIV_3_3 = UART_MR_OPT_CMPTH_VDDIO_DIV3P3,
  UART_RX_CMP_THRESHOLD_VDDIO_DIV_2_5 = UART_MR_OPT_CMPTH_VDDIO_DIV2P5,
  UART_RX_CMP_THRESHOLD_VDDIO_DIV_2_0 = UART_MR_OPT_CMPTH_VDDIO_DIV2
}
 
enum  uart_optical_duty_cycle {
  UART_MOD_CLK_DUTY_50_00 = UART_MR_OPT_DUTY_DUTY_50,
  UART_MOD_CLK_DUTY_43_75 = UART_MR_OPT_DUTY_DUTY_43P75,
  UART_MOD_CLK_DUTY_37_50 = UART_MR_OPT_DUTY_DUTY_37P5,
  UART_MOD_CLK_DUTY_31_25 = UART_MR_OPT_DUTY_DUTY_31P25,
  UART_MOD_CLK_DUTY_25_00 = UART_MR_OPT_DUTY_DUTY_25,
  UART_MOD_CLK_DUTY_18_75 = UART_MR_OPT_DUTY_DUTY_18P75,
  UART_MOD_CLK_DUTY_12_50 = UART_MR_OPT_DUTY_DUTY_12P5,
  UART_MOD_CLK_DUTY_06_25 = UART_MR_OPT_DUTY_DUTY_6P25
}
 

Functions

void uart_config_optical_interface (Uart *p_uart, struct uart_config_optical *cfg)
 
void uart_disable (Uart *p_uart)
 Disable UART receiver and transmitter. More...
 
void uart_disable_interrupt (Uart *p_uart, uint32_t ul_sources)
 Disable UART interrupts. More...
 
void uart_disable_optical_interface (Uart *p_uart)
 
void uart_disable_rx (Uart *p_uart)
 Disable UART receiver. More...
 
void uart_disable_tx (Uart *p_uart)
 Disable UART transmitter. More...
 
void uart_enable (Uart *p_uart)
 Enable UART receiver and transmitter. More...
 
void uart_enable_interrupt (Uart *p_uart, uint32_t ul_sources)
 Enable UART interrupts. More...
 
void uart_enable_optical_interface (Uart *p_uart)
 
void uart_enable_rx (Uart *p_uart)
 Enable UART receiver. More...
 
void uart_enable_tx (Uart *p_uart)
 Enable UART transmitter. More...
 
uint32_t uart_get_interrupt_mask (Uart *p_uart)
 Read UART interrupt mask. More...
 
Pdc * uart_get_pdc_base (Uart *p_uart)
 
uint32_t uart_get_status (Uart *p_uart)
 Get current status. More...
 
uint32_t uart_init (Uart *p_uart, const sam_uart_opt_t *p_uart_opt)
 Configure UART with the specified parameters. More...
 
uint32_t uart_is_rx_buf_end (Uart *p_uart)
 
uint32_t uart_is_rx_buf_full (Uart *p_uart)
 
uint32_t uart_is_rx_ready (Uart *p_uart)
 Check if Received data is ready. More...
 
uint32_t uart_is_tx_buf_empty (Uart *p_uart)
 Check if both transmit buffers are sent out. More...
 
uint32_t uart_is_tx_buf_end (Uart *p_uart)
 
uint32_t uart_is_tx_empty (Uart *p_uart)
 Check if Transmit Hold Register is empty. More...
 
uint32_t uart_is_tx_ready (Uart *p_uart)
 Check if Transmit is Ready. More...
 
uint32_t uart_read (Uart *p_uart, uint8_t *puc_data)
 Read from UART Receive Holding Register. More...
 
void uart_reset (Uart *p_uart)
 Reset UART receiver and transmitter. More...
 
void uart_reset_rx (Uart *p_uart)
 Reset UART receiver. More...
 
void uart_reset_status (Uart *p_uart)
 Reset status bits. More...
 
void uart_reset_tx (Uart *p_uart)
 Reset UART transmitter. More...
 
void uart_set_clock_divisor (Uart *p_uart, uint16_t us_divisor)
 Set UART clock divisor value. More...
 
void uart_set_sleepwalking (Uart *p_uart, uint8_t ul_low_value, bool cmpmode, bool cmppar, uint8_t ul_high_value)
 
void uart_set_write_protection (Uart *p_uart, bool flag)
 
uint32_t uart_write (Uart *p_uart, const uint8_t uc_data)
 Write to UART Transmit Holding Register Before writing user should check if tx is ready (or empty). More...
 

#define UART_MCK_DIV   16

Referenced by uart_init().

#define UART_MCK_DIV_MAX_FACTOR   65535

Referenced by uart_init().

#define UART_MCK_DIV_MIN_FACTOR   1

typedef struct sam_uart_opt sam_uart_opt_t

Option list for UART peripheral initialization.

Enumerator
UART_RX_CMP_THRESHOLD_VDDIO_DIV_10_0 
UART_RX_CMP_THRESHOLD_VDDIO_DIV_5_0 
UART_RX_CMP_THRESHOLD_VDDIO_DIV_3_3 
UART_RX_CMP_THRESHOLD_VDDIO_DIV_2_5 
UART_RX_CMP_THRESHOLD_VDDIO_DIV_2_0 
Enumerator
UART_MOD_CLK_DUTY_50_00 
UART_MOD_CLK_DUTY_43_75 
UART_MOD_CLK_DUTY_37_50 
UART_MOD_CLK_DUTY_31_25 
UART_MOD_CLK_DUTY_25_00 
UART_MOD_CLK_DUTY_18_75 
UART_MOD_CLK_DUTY_12_50 
UART_MOD_CLK_DUTY_06_25 

void uart_config_optical_interface ( Uart *  p_uart,
struct uart_config_optical cfg 
)
void uart_disable_optical_interface ( Uart *  p_uart)
void uart_enable_optical_interface ( Uart *  p_uart)
Pdc* uart_get_pdc_base ( Uart *  p_uart)
uint32_t uart_is_rx_buf_end ( Uart *  p_uart)
uint32_t uart_is_rx_buf_full ( Uart *  p_uart)
uint32_t uart_is_tx_buf_end ( Uart *  p_uart)
void uart_set_sleepwalking ( Uart *  p_uart,
uint8_t  ul_low_value,
bool  cmpmode,
bool  cmppar,
uint8_t  ul_high_value 
)
void uart_set_write_protection ( Uart *  p_uart,
bool  flag 
)