![]()  | 
  
    MCUXpresso SDK API Reference Manual
    Rev 2.13.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_ADAPTER_FIFO (1U) | 
| Enable or disable uart hardware FIFO mode (1 - enable, 0 - disable)  | |
| #define | HAL_UART_DMA_INIT_ENABLE (1U) | 
| Enable or disable uart DMA adapter int mode (1 - enable, 0 - disable)  | |
| #define | HAL_UART_DMA_IDLELINE_TIMEOUT (1U) | 
| Definition of uart dma adapter software idleline detection timeout value in ms.  More... | |
| #define | HAL_UART_HANDLE_SIZE (8U + HAL_UART_ADAPTER_LOWPOWER * 16U + HAL_UART_DMA_ENABLE * 4U) | 
| 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))] | 
| Definition of uart dma adapter handle size.  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_dma_handle_t | 
| The handle of uart dma 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 = 0x2U, kHAL_UartParityOdd = 0x3U }  | 
| 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, const 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 | enableRxRTS | 
| Enable RX RTS.  | |
| uint8_t | enableTxCTS | 
| Enable TX CTS.  | |
| 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_DMA_IDLELINE_TIMEOUT (1U) | 
| #define HAL_UART_HANDLE_SIZE (8U + HAL_UART_ADAPTER_LOWPOWER * 16U + HAL_UART_DMA_ENABLE * 4U) | 
| #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. | 
| #define HAL_UART_TRANSFER_MODE (0U) | 
(0 - disable, 1 - enable)
| typedef void* hal_uart_handle_t | 
| typedef void* hal_uart_dma_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, | 
| const 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. |