MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
Data Structures | |
struct | hal_uart_config_t |
UART configuration structure. More... | |
struct | hal_uart_transfer_t |
UART transfer structure. More... | |
Macros | |
#define | UART_ADAPTER_NON_BLOCKING_MODE (0U) |
Enable or disable UART adapter non-blocking mode (1 - enable, 0 - disable) | |
#define | HAL_UART_HANDLE_SIZE (4U + HAL_UART_ADAPTER_LOWPOWER * 16U) |
Definition of uart adapter handle size. 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... | |
#define | HAL_UART_TRANSFER_MODE (0U) |
Whether enable transactional function of the UART. More... | |
Typedefs | |
typedef void * | hal_uart_handle_t |
The handle of uart adapter. 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... | |
Enumerations | |
enum | hal_uart_status_t { 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_parity_mode_t { kHAL_UartParityDisabled = 0x0U, kHAL_UartParityEven = 0x1U, kHAL_UartParityOdd = 0x2U } |
UART parity mode. More... | |
enum | hal_uart_stop_bit_count_t { 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... | |
struct hal_uart_config_t |
Data Fields | |
uint32_t | srcClock_Hz |
Source clock. | |
uint32_t | baudRate_Bps |
Baud rate. | |
hal_uart_parity_mode_t | parityMode |
Parity mode, disabled (default), even, odd. | |
hal_uart_stop_bit_count_t | stopBitCount |
Number of stop bits, 1 stop bit (default) or 2 stop bits. | |
uint8_t | enableRx |
Enable RX. | |
uint8_t | enableTx |
Enable TX. | |
uint8_t | instance |
Instance (0 - UART0, 1 - UART1, ...), detail information please refer to the SOC corresponding RM. More... | |
uint8_t hal_uart_config_t::instance |
Invalid instance value will cause initialization failure.
struct hal_uart_transfer_t |
#define HAL_UART_HANDLE_SIZE (4U + HAL_UART_ADAPTER_LOWPOWER * 16U) |
#define UART_HANDLE_DEFINE | ( | name | ) | uint32_t name[((HAL_UART_HANDLE_SIZE + sizeof(uint32_t) - 1U) / sizeof(uint32_t))] |
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. |
#define HAL_UART_TRANSFER_MODE (0U) |
(0 - disable, 1 - enable)
typedef void* hal_uart_handle_t |
typedef void(* hal_uart_transfer_callback_t)(hal_uart_handle_t handle, hal_uart_status_t status, void *callbackParam) |
enum hal_uart_status_t |
hal_uart_status_t HAL_UartInit | ( | hal_uart_handle_t | handle, |
hal_uart_config_t * | config | ||
) |
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 |
hal_uart_status_t HAL_UartDeinit | ( | hal_uart_handle_t | handle | ) |
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 |
hal_uart_status_t HAL_UartReceiveBlocking | ( | hal_uart_handle_t | handle, |
uint8_t * | data, | ||
size_t | length | ||
) |
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. |
hal_uart_status_t HAL_UartSendBlocking | ( | hal_uart_handle_t | handle, |
const uint8_t * | data, | ||
size_t | length | ||
) |
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. |
hal_uart_status_t HAL_UartEnterLowpower | ( | hal_uart_handle_t | handle | ) |
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. |
hal_uart_status_t HAL_UartExitLowpower | ( | hal_uart_handle_t | handle | ) |
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. |