HPM SDK
HPMicro Software Development Kit
hpm_uart_drv.c File Reference
#include "hpm_common.h"
#include "hpm_uart_drv.h"

Macros

#define HPM_UART_DRV_RETRY_COUNT   (5000U)
 
#define HPM_UART_MINIMUM_BAUDRATE   (200U)
 
#define HPM_UART_BAUDRATE_TOLERANCE   (3)
 
#define HPM_UART_OSC_MAX   (32U)
 
#define HPM_UART_OSC_MIN   (8U)
 
#define HPM_UART_BAUDRATE_DIV_MAX   (0xFFFFU)
 
#define HPM_UART_BAUDRATE_DIV_MIN   (1U)
 
#define UART_SOC_OVERSAMPLE_MAX   HPM_UART_OSC_MAX
 

Functions

void uart_default_config (UART_Type *ptr, uart_config_t *config)
 Get default config. More...
 
static bool uart_calculate_baudrate (uint32_t freq, uint32_t baudrate, uint16_t *div_out, uint8_t *osc_out)
 
hpm_stat_t uart_init (UART_Type *ptr, uart_config_t *config)
 Initialization. More...
 
hpm_stat_t uart_set_baudrate (UART_Type *ptr, uint32_t baudrate, uint32_t src_clock_hz)
 Sets UART baudrate. More...
 
hpm_stat_t uart_send_byte (UART_Type *ptr, uint8_t c)
 Send one byte after checking thresh hold status. More...
 
hpm_stat_t uart_flush (UART_Type *ptr)
 Flush sending buffer/fifo. More...
 
hpm_stat_t uart_receive_byte (UART_Type *ptr, uint8_t *byte)
 Receive one byte after checking data ready status. More...
 
hpm_stat_t uart_try_receive_byte (UART_Type *ptr, uint8_t *byte)
 Try to receive one byte without checking data ready status. More...
 
void uart_set_signal_level (UART_Type *ptr, uart_signal_t signal, uart_signal_level_t level)
 Set uart signal output level. More...
 
hpm_stat_t uart_receive_data (UART_Type *ptr, uint8_t *source, uint32_t size_in_byte)
 Receive bytes blocking. More...
 
hpm_stat_t uart_send_data (UART_Type *ptr, uint8_t *source, uint32_t size_in_byte)
 Send bytes blocking. More...
 
hpm_stat_t uart_init_rxline_idle_detection (UART_Type *ptr, uart_rxline_idle_config_t rxidle_config)
 Configure UART RX Line detection. More...
 
hpm_stat_t uart_init_txline_idle_detection (UART_Type *ptr, uart_rxline_idle_config_t txidle_config)
 Configure UART TX Line detection. More...
 
void uart_config_transfer_trig_mode (UART_Type *ptr, uart_trig_config_t *config)
 uart configure transfer trigger mode More...
 
void uart_config_fifo_ctrl (UART_Type *ptr, uart_fifo_ctrl_t *ctrl)
 uart config fifo control More...
 

Macro Definition Documentation

◆ HPM_UART_BAUDRATE_DIV_MAX

#define HPM_UART_BAUDRATE_DIV_MAX   (0xFFFFU)

◆ HPM_UART_BAUDRATE_DIV_MIN

#define HPM_UART_BAUDRATE_DIV_MIN   (1U)

◆ HPM_UART_BAUDRATE_TOLERANCE

#define HPM_UART_BAUDRATE_TOLERANCE   (3)

◆ HPM_UART_DRV_RETRY_COUNT

#define HPM_UART_DRV_RETRY_COUNT   (5000U)

◆ HPM_UART_MINIMUM_BAUDRATE

#define HPM_UART_MINIMUM_BAUDRATE   (200U)

◆ HPM_UART_OSC_MAX

#define HPM_UART_OSC_MAX   (32U)

◆ HPM_UART_OSC_MIN

#define HPM_UART_OSC_MIN   (8U)

◆ UART_SOC_OVERSAMPLE_MAX

#define UART_SOC_OVERSAMPLE_MAX   HPM_UART_OSC_MAX

Function Documentation

◆ uart_calculate_baudrate()

static bool uart_calculate_baudrate ( uint32_t  freq,
uint32_t  baudrate,
uint16_t *  div_out,
uint8_t *  osc_out 
)
static