Classes | |
struct | _hal_uart_config |
UART configuration structure. More... | |
struct | _hal_uart_transfer |
UART transfer structure. More... | |
Macros | |
#define | HAL_UART_ADAPTER_LOWPOWER (0U) |
#define | HAL_UART_HANDLE_SIZE (4U + HAL_UART_ADAPTER_LOWPOWER * 16U) |
Definition of uart adapter handle size. More... | |
#define | HAL_UART_ISR_PRIORITY (3U) |
#define | HAL_UART_TRANSFER_MODE (0U) |
Whether enable transactional function of the UART. (0 - disable, 1 - enable) More... | |
#define | UART_ADAPTER_NON_BLOCKING_MODE (0U) |
Enable or disable UART adapter non-blocking mode (1 - enable, 0 - disable) More... | |
#define | UART_HANDLE_DEFINE(name) uint32_t name[((HAL_UART_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))] |
Defines the uart handle. More... | |
Typedefs | |
typedef struct _hal_uart_config | hal_uart_config_t |
UART configuration structure. More... | |
typedef void * | hal_uart_handle_t |
The handle of uart adapter. More... | |
typedef enum _hal_uart_parity_mode | hal_uart_parity_mode_t |
UART parity mode. More... | |
typedef enum _hal_uart_status | hal_uart_status_t |
UART status. More... | |
typedef enum _hal_uart_stop_bit_count | hal_uart_stop_bit_count_t |
UART stop bit count. More... | |
typedef void(* | hal_uart_transfer_callback_t) (hal_uart_handle_t handle, hal_uart_status_t status, void *callbackParam) |
UART transfer callback function. More... | |
typedef struct _hal_uart_transfer | hal_uart_transfer_t |
UART transfer structure. More... | |
Enumerations | |
enum | _hal_uart_parity_mode { kHAL_UartParityDisabled = 0x0U, kHAL_UartParityEven = 0x1U, kHAL_UartParityOdd = 0x2U } |
UART parity mode. More... | |
enum | _hal_uart_status { kStatus_HAL_UartSuccess = kStatus_Success, kStatus_HAL_UartTxBusy = MAKE_STATUS(kStatusGroup_HAL_UART, 1), kStatus_HAL_UartRxBusy = MAKE_STATUS(kStatusGroup_HAL_UART, 2), kStatus_HAL_UartTxIdle = MAKE_STATUS(kStatusGroup_HAL_UART, 3), kStatus_HAL_UartRxIdle = MAKE_STATUS(kStatusGroup_HAL_UART, 4), kStatus_HAL_UartBaudrateNotSupport, kStatus_HAL_UartProtocolError, kStatus_HAL_UartError = MAKE_STATUS(kStatusGroup_HAL_UART, 7) } |
UART status. More... | |
enum | _hal_uart_stop_bit_count { kHAL_UartOneStopBit = 0U, kHAL_UartTwoStopBit = 1U } |
UART stop bit count. More... | |
Functions | |
hal_uart_status_t | HAL_UartEnterLowpower (hal_uart_handle_t handle) |
Prepares to enter low power consumption. More... | |
hal_uart_status_t | HAL_UartExitLowpower (hal_uart_handle_t handle) |
Restores from low power consumption. More... | |
Initialization and deinitialization | |
hal_uart_status_t | HAL_UartInit (hal_uart_handle_t handle, hal_uart_config_t *config) |
Initializes a UART instance with the UART handle and the user configuration structure. More... | |
hal_uart_status_t | HAL_UartDeinit (hal_uart_handle_t handle) |
Deinitializes a UART instance. More... | |
Blocking bus Operations | |
hal_uart_status_t | HAL_UartReceiveBlocking (hal_uart_handle_t handle, uint8_t *data, size_t length) |
Reads RX data register using a blocking method. More... | |
hal_uart_status_t | HAL_UartSendBlocking (hal_uart_handle_t handle, const uint8_t *data, size_t length) |
Writes to the TX register using a blocking method. More... | |
#define HAL_UART_HANDLE_SIZE (4U + HAL_UART_ADAPTER_LOWPOWER * 16U) |
#define HAL_UART_TRANSFER_MODE (0U) |
#define UART_ADAPTER_NON_BLOCKING_MODE (0U) |
Enable or disable UART adapter non-blocking mode (1 - enable, 0 - disable)
When defined DEBUG_CONSOLE_TRANSFER_NON_BLOCKING and the interrupt of the UART peripheral with setting instance is not routed to interrupt controller directly, the enablement and priority of the peripheral interrupt are not configured by UART adapter. Please configure the interrupt in the application layer. Such as, if the interrupt of UART peripheral routes to INTMUX, please call function INTMUX_EnableInterrupt of INTMUX to enable the interrupt of the instance.
#define UART_HANDLE_DEFINE | ( | name | ) | uint32_t name[((HAL_UART_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))] |
Defines the uart handle.
This macro is used to define a 4 byte aligned uart handle. Then use "(hal_uart_handle_t)name" to get the uart handle.
The macro should be global and could be optional. You could also define uart handle by yourself.
This is an example,
name | The name string of the uart handle. |
typedef struct _hal_uart_config hal_uart_config_t |
UART configuration structure.
typedef void* hal_uart_handle_t |
typedef enum _hal_uart_parity_mode hal_uart_parity_mode_t |
UART parity mode.
typedef enum _hal_uart_status hal_uart_status_t |
UART status.
typedef enum _hal_uart_stop_bit_count hal_uart_stop_bit_count_t |
UART stop bit count.
typedef void(* hal_uart_transfer_callback_t) (hal_uart_handle_t handle, hal_uart_status_t status, void *callbackParam) |
typedef struct _hal_uart_transfer hal_uart_transfer_t |
UART transfer structure.
enum _hal_uart_status |
UART status.
hal_uart_status_t HAL_UartDeinit | ( | hal_uart_handle_t | handle | ) |
Deinitializes a UART instance.
This function waits for TX complete, disables TX and RX, and disables the UART clock.
handle | UART handle pointer. |
kStatus_HAL_UartSuccess | UART de-initialization succeed |
Definition at line 310 of file lpuart_adapter.c.
hal_uart_status_t HAL_UartEnterLowpower | ( | hal_uart_handle_t | handle | ) |
Prepares to enter low power consumption.
This function is used to prepare to enter low power consumption.
handle | UART handle pointer. |
kStatus_HAL_UartSuccess | Successful operation. |
kStatus_HAL_UartError | An error occurred. |
Definition at line 374 of file lpuart_adapter.c.
hal_uart_status_t HAL_UartExitLowpower | ( | hal_uart_handle_t | handle | ) |
Restores from low power consumption.
This function is used to restore from low power consumption.
handle | UART handle pointer. |
kStatus_HAL_UartSuccess | Successful operation. |
kStatus_HAL_UartError | An error occurred. |
Definition at line 381 of file lpuart_adapter.c.
hal_uart_status_t HAL_UartInit | ( | hal_uart_handle_t | handle, |
hal_uart_config_t * | config | ||
) |
Initializes a UART instance with the UART handle and the user configuration structure.
This function configures the UART module with user-defined settings. The user can configure the configuration structure. The parameter handle is a pointer to point to a memory space of size HAL_UART_HANDLE_SIZE allocated by the caller. Example below shows how to use this API to configure the UART.
handle | Pointer to point to a memory space of size HAL_UART_HANDLE_SIZE allocated by the caller. The handle should be 4 byte aligned, because unaligned access doesn't be supported on some devices. You can define the handle in the following two ways: UART_HANDLE_DEFINE(handle); or uint32_t handle[((HAL_UART_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))]; |
config | Pointer to user-defined configuration structure. |
kStatus_HAL_UartBaudrateNotSupport | Baudrate is not support in current clock source. |
kStatus_HAL_UartSuccess | UART initialization succeed |
Definition at line 226 of file lpuart_adapter.c.
hal_uart_status_t HAL_UartReceiveBlocking | ( | hal_uart_handle_t | handle, |
uint8_t * | data, | ||
size_t | length | ||
) |
Reads RX data register using a blocking method.
This function polls the RX register, waits for the RX register to be full or for RX FIFO to have data, and reads data from the RX register.
handle | UART handle pointer. |
data | Start address of the buffer to store the received data. |
length | Size of the buffer. |
kStatus_HAL_UartError | An error occurred while receiving data. |
kStatus_HAL_UartParityError | A parity error occurred while receiving data. |
kStatus_HAL_UartSuccess | Successfully received all data. |
Definition at line 331 of file lpuart_adapter.c.
hal_uart_status_t HAL_UartSendBlocking | ( | hal_uart_handle_t | handle, |
const uint8_t * | data, | ||
size_t | length | ||
) |
Writes to the TX register using a blocking method.
This function polls the TX register, waits for the TX register to be empty or for the TX FIFO to have room and writes data to the TX buffer.
handle | UART handle pointer. |
data | Start address of the data to write. |
length | Size of the data to write. |
kStatus_HAL_UartSuccess | Successfully sent all data. |
Definition at line 353 of file lpuart_adapter.c.