Microchip® Advanced Software Framework

usart.h File Reference

Universal Synchronous Asynchronous Receiver Transmitter (USART) driver for SAM.

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

#include "compiler.h"

Data Structures

struct  sam_usart_opt_t
 
struct  usart_iso7816_opt_t
 
struct  usart_spi_opt_t
 

Macros

#define SPI_CPHA   (1 << 0)
 Clock phase. More...
 
#define SPI_CPOL   (1 << 1)
 Clock polarity. More...
 
#define SPI_MODE_0   0
 SPI mode definition. More...
 
#define SPI_MODE_1   (SPI_CPHA)
 
#define SPI_MODE_2   (SPI_CPOL)
 
#define SPI_MODE_3   (SPI_CPOL | SPI_CPHA)
 
#define US_MR_USART_MODE_LIN_MASTER   0x0A
 micro definition for LIN mode of SAMV71 More...
 
#define US_MR_USART_MODE_LIN_SLAVE   0x0B
 

Functions

void usart_disable_interrupt (Usart *p_usart, uint32_t ul_sources)
 Disable USART interrupts. More...
 
void usart_disable_rx (Usart *p_usart)
 Disable USART receiver. More...
 
void usart_disable_tx (Usart *p_usart)
 Disable USART transmitter. More...
 
void usart_disable_writeprotect (Usart *p_usart)
 Disable write protect of USART registers. More...
 
void usart_drive_DTR_pin_high (Usart *p_usart)
 
void usart_drive_DTR_pin_low (Usart *p_usart)
 
void usart_drive_RTS_pin_high (Usart *p_usart)
 Drive the pin RTS to 1. More...
 
void usart_drive_RTS_pin_low (Usart *p_usart)
 Drive the pin RTS to 0. More...
 
void usart_enable_interrupt (Usart *p_usart, uint32_t ul_sources)
 Enable USART interrupts. More...
 
void usart_enable_rx (Usart *p_usart)
 Enable USART receiver. More...
 
void usart_enable_tx (Usart *p_usart)
 Enable USART transmitter. More...
 
void usart_enable_writeprotect (Usart *p_usart)
 Enable write protect of USART registers. More...
 
uint8_t usart_get_error_number (Usart *p_usart)
 
uint32_t usart_get_interrupt_mask (Usart *p_usart)
 Read USART interrupt mask. More...
 
Pdc * usart_get_pdc_base (Usart *p_usart)
 
uint32_t * usart_get_rx_access (Usart *p_usart)
 
uint32_t usart_get_status (Usart *p_usart)
 Get current status. More...
 
uint32_t * usart_get_tx_access (Usart *p_usart)
 
uint32_t usart_get_version (Usart *p_usart)
 
uint32_t usart_get_writeprotect_status (Usart *p_usart)
 Get write protect status. More...
 
uint32_t usart_getchar (Usart *p_usart, uint32_t *c)
 Read from USART Receive Holding Register. More...
 
uint32_t usart_init_hw_handshaking (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in hardware handshaking mode. More...
 
uint32_t usart_init_irda (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 
uint32_t usart_init_iso7816 (Usart *p_usart, const usart_iso7816_opt_t *p_usart_opt, uint32_t ul_mck)
 
uint32_t usart_init_lin_master (Usart *p_usart, uint32_t ul_baudrate, uint32_t ul_mck)
 
uint32_t usart_init_lin_slave (Usart *p_usart, uint32_t ul_baudrate, uint32_t ul_mck)
 
uint32_t usart_init_lon (Usart *p_usart, uint32_t ul_baudrate, uint32_t ul_mck)
 
uint32_t usart_init_modem (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 
uint32_t usart_init_rs232 (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in RS232 mode. More...
 
uint32_t usart_init_rs485 (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in RS485 mode. More...
 
uint32_t usart_init_spi_master (Usart *p_usart, const usart_spi_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in SPI mode and act as a master. More...
 
uint32_t usart_init_spi_slave (Usart *p_usart, const usart_spi_opt_t *p_usart_opt)
 Configure USART to work in SPI mode and act as a slave. More...
 
uint32_t usart_init_sync_master (Usart *p_usart, const sam_usart_opt_t *p_usart_opt, uint32_t ul_mck)
 Configure USART to work in SYNC mode and act as a master. More...
 
uint32_t usart_init_sync_slave (Usart *p_usart, const sam_usart_opt_t *p_usart_opt)
 Configure USART to work in SYNC mode and act as a slave. More...
 
uint32_t usart_is_rx_buf_end (Usart *p_usart)
 
uint32_t usart_is_rx_buf_full (Usart *p_usart)
 
uint32_t usart_is_rx_ready (Usart *p_usart)
 Check if the received data are ready. More...
 
uint32_t usart_is_tx_buf_empty (Usart *p_usart)
 
uint32_t usart_is_tx_buf_end (Usart *p_usart)
 
uint32_t usart_is_tx_empty (Usart *p_usart)
 Check if Transmit Holding Register is empty. More...
 
uint32_t usart_is_tx_ready (Usart *p_usart)
 Check if Transmit is Ready. More...
 
void usart_lin_abort_tx (Usart *p_usart)
 
void usart_lin_disable_checksum (Usart *p_usart)
 
void usart_lin_disable_frame_slot (Usart *p_usart)
 
void usart_lin_disable_parity (Usart *p_usart)
 
void usart_lin_disable_pdc_mode (Usart *p_usart)
 
void usart_lin_enable_checksum (Usart *p_usart)
 
void usart_lin_enable_frame_slot (Usart *p_usart)
 
void usart_lin_enable_parity (Usart *p_usart)
 
void usart_lin_enable_pdc_mode (Usart *p_usart)
 
uint8_t usart_lin_get_data_length (Usart *usart)
 
uint8_t usart_lin_identifier_reception_complete (Usart *usart)
 
uint8_t usart_lin_identifier_send_complete (Usart *usart)
 
uint8_t usart_lin_read_identifier (Usart *p_usart)
 
void usart_lin_send_wakeup_signal (Usart *p_usart)
 
void usart_lin_set_checksum_type (Usart *p_usart, uint8_t uc_type)
 
void usart_lin_set_data_len_mode (Usart *p_usart, uint8_t uc_mode)
 
void usart_lin_set_node_action (Usart *p_usart, uint8_t uc_action)
 
void usart_lin_set_response_data_len (Usart *p_usart, uint8_t uc_len)
 
void usart_lin_set_tx_identifier (Usart *p_usart, uint8_t uc_id)
 
void usart_lin_set_wakeup_signal_type (Usart *p_usart, uint8_t uc_type)
 
uint8_t usart_lin_tx_complete (Usart *usart)
 
void usart_lon_disable_coll_detection (Usart *p_usart)
 
void usart_lon_enable_coll_detection (Usart *p_usart)
 
uint32_t usart_lon_is_rx_end (Usart *p_usart)
 
uint32_t usart_lon_is_tx_end (Usart *p_usart)
 
void usart_lon_set_beta1_rx_len (Usart *p_usart, uint32_t ul_len)
 
void usart_lon_set_beta1_tx_len (Usart *p_usart, uint32_t ul_len)
 
void usart_lon_set_cdtail (Usart *p_usart, uint8_t uc_type)
 
void usart_lon_set_comm_type (Usart *p_usart, uint8_t uc_type)
 
void usart_lon_set_data_len (Usart *p_usart, uint8_t uc_len)
 
void usart_lon_set_dmam (Usart *p_usart, uint8_t uc_type)
 
void usart_lon_set_l2hdr (Usart *p_usart, uint8_t uc_bli, uint8_t uc_altp, uint8_t uc_pb)
 
void usart_lon_set_pre_len (Usart *p_usart, uint32_t ul_len)
 
void usart_lon_set_priority (Usart *p_usart, uint8_t uc_psnb, uint8_t uc_nps)
 
void usart_lon_set_rx_idt (Usart *p_usart, uint32_t ul_time)
 
void usart_lon_set_tcol (Usart *p_usart, uint8_t uc_type)
 
void usart_lon_set_tx_idt (Usart *p_usart, uint32_t ul_time)
 
void usart_man_disable_drift_compensation (Usart *p_usart)
 
void usart_man_enable_drift_compensation (Usart *p_usart)
 
void usart_man_set_rx_polarity (Usart *p_usart, uint8_t uc_polarity)
 
void usart_man_set_rx_pre_len (Usart *p_usart, uint8_t uc_len)
 
void usart_man_set_rx_pre_pattern (Usart *p_usart, uint8_t uc_pattern)
 
void usart_man_set_tx_polarity (Usart *p_usart, uint8_t uc_polarity)
 
void usart_man_set_tx_pre_len (Usart *p_usart, uint8_t uc_len)
 
void usart_man_set_tx_pre_pattern (Usart *p_usart, uint8_t uc_pattern)
 
uint32_t usart_putchar (Usart *p_usart, uint32_t c)
 Write to USART Transmit Holding Register. More...
 
uint32_t usart_read (Usart *p_usart, uint32_t *c)
 Read from USART Receive Holding Register. More...
 
void usart_reset (Usart *p_usart)
 Reset the USART and disable TX and RX. More...
 
void usart_reset_iterations (Usart *p_usart)
 
void usart_reset_nack (Usart *p_usart)
 
void usart_reset_rx (Usart *p_usart)
 Immediately stop and disable USART receiver. More...
 
void usart_reset_status (Usart *p_usart)
 Reset status bits (PARE, OVER, MANERR, UNRE and PXBRK in US_CSR). More...
 
void usart_reset_tx (Usart *p_usart)
 Immediately stop and disable USART transmitter. More...
 
void usart_restart_rx_timeout (Usart *p_usart)
 Restart the receive timeout. More...
 
uint32_t usart_send_address (Usart *p_usart, uint32_t ul_addr)
 In Multidrop mode only, the next character written to the US_THR is sent with the address bit set. More...
 
uint32_t usart_set_async_baudrate (Usart *p_usart, uint32_t baudrate, uint32_t ul_mck)
 Calculate a clock divider(CD) and a fractional part (FP) for the USART asynchronous modes to generate a baudrate as close as possible to the baudrate set point. More...
 
void usart_set_rx_timeout (Usart *p_usart, uint32_t timeout)
 Configure the receive timeout register. More...
 
void usart_set_sleepwalking (Usart *p_uart, uint8_t ul_low_value, bool cmpmode, bool cmppar, uint8_t ul_high_value)
 
void usart_set_tx_timeguard (Usart *p_usart, uint32_t timeguard)
 Configure the transmit timeguard register. More...
 
void usart_spi_force_chip_select (Usart *p_usart)
 Drive the slave select line NSS (RTS pin) to 0 in SPI master mode. More...
 
void usart_spi_release_chip_select (Usart *p_usart)
 Drive the slave select line NSS (RTS pin) to 1 in SPI master mode. More...
 
void usart_start_rx_timeout (Usart *p_usart)
 Start waiting for a character before clocking the timeout count. More...
 
void usart_start_tx_break (Usart *p_usart)
 Start transmission of a break. More...
 
void usart_stop_tx_break (Usart *p_usart)
 Stop transmission of a break. More...
 
uint32_t usart_write (Usart *p_usart, uint32_t c)
 Write to USART Transmit Holding Register. More...
 
void usart_write_line (Usart *p_usart, const char *string)
 Write one-line string through USART. More...