Microchip® Advanced Software Framework

buffered_uart_ultra.c File Reference

SAM D21 UART API Implementations.

Copyright (c) 2019 Microchip Technology Inc. and its subsidiaries.

#include "asf.h"
#include <stdio.h>
#include <string.h>
#include "buffered_uart_ultra.h"

Functions

uint8_t buffered_uart_getchar (void)
 This function performs a blocking character receive functionality. More...
 
int buffered_uart_getchar_nowait (void)
 This function performs a non-blocking character receive functionality. More...
 
void buffered_uart_init (uint32_t baudrate)
 Initializes the Buffered Serial IO Module. More...
 
void buffered_uart_putchar (uint8_t ch)
 This function prints the character to the host. More...
 
uint8_t buffered_uart_rx (uint8_t *data, uint8_t max_len)
 Receives data from UART. More...
 
void buffered_uart_term (void)
 Terminate the Buffered Serial IO Module. More...
 
uint8_t buffered_uart_tx (uint8_t *data, uint32_t length)
 Transmits data via UART. More...
 
void USART_HOST_ISR_VECT (void)
 

Variables

static struct usart_module host_uart_module
 
static uint8_t serial_rx_buf [SERIAL_RX_BUF_SIZE_HOST]
 
static uint8_t serial_rx_buf_head
 
static uint8_t serial_rx_buf_tail
 

uint8_t buffered_uart_getchar ( void  )

This function performs a blocking character receive functionality.

Returns
returns the data which is received

References buffered_uart_getchar_nowait(), and c.

int buffered_uart_getchar_nowait ( void  )

This function performs a non-blocking character receive functionality.

Returns
'-1' if no data is received or returns the data if a character is received

References c, cpu_irq_disable, cpu_irq_enable, serial_rx_buf, serial_rx_buf_head, SERIAL_RX_BUF_SIZE_HOST, and serial_rx_buf_tail.

Referenced by buffered_uart_getchar().

uint8_t buffered_uart_rx ( uint8_t *  data,
uint8_t  max_length 
)

Receives data from UART.

Parameters
datapointer to the buffer where the received data is to be stored
max_lengthmaximum length of data to be received
Returns
actual number of bytes received

References cpu_irq_disable, cpu_irq_enable, serial_rx_buf, serial_rx_buf_head, SERIAL_RX_BUF_SIZE_HOST, and serial_rx_buf_tail.

Referenced by enter_wifi_firmware_download(), and serial_bridge_frame_receive().

void buffered_uart_term ( void  )

Terminate the Buffered Serial IO Module.

Returns
STATUS_OK for successful initialization and FAILURE in case the IO is not initialized

References host_uart_module, and usart_disable().

Referenced by serial_bridge_process_reconfigure().

uint8_t buffered_uart_tx ( uint8_t *  data,
uint32_t  length 
)

Transmits data via UART.

Parameters
dataPointer to the buffer where the data to be transmitted is present
lengthNumber of bytes to be transmitted
Returns
Number of bytes actually transmitted

References buffered_uart_putchar(), length, status, and STATUS_OK.

Referenced by serial_bridge_process_read_block().

void USART_HOST_ISR_VECT ( void  )

uint8_t serial_rx_buf_head
static
uint8_t serial_rx_buf_tail
static