![]() |
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) More... | |
#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 UART_ADAPTER_NON_BLOCKING_MODE (0U) |
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 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. |