uartdrv.h File Reference
UARTDRV API definition.
- Version
- 5.5.0
License
Copyright 2016 Silicon Laboratories, Inc, www.silabs.com
This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.
       Definition in file
       
        uartdrv.h
       
       .
      
       #include "
       
        em_device.h
       
       "
      
      
       #include "
       
        em_usart.h
       
       "
      
      
       #include "
       
        em_leuart.h
       
       "
      
      
       #include "
       
        em_gpio.h
       
       "
      
      
       #include "
       
        em_cmu.h
       
       "
      
      
       #include "
       
        ecode.h
       
       "
      
      
       #include "uartdrv_config.h"
      
      
       #include "
       
        dmadrv.h
       
       "
      
      
| Data Structures | |
| struct | UARTDRV_Buffer_FifoQueue_t | 
| Transfer operation FIFO queue typedef. | |
| struct | UARTDRV_Buffer_t | 
| UART transfer buffer. | |
| struct | UARTDRV_HandleData | 
| struct | UARTDRV_InitLeuart_t | 
| struct | UARTDRV_InitUart_t | 
| Macros | |
| #define | DEFINE_BUF_QUEUE (qSize, qName) | 
| #define | ECODE_EMDRV_UARTDRV_ABORTED ( ECODE_EMDRV_UARTDRV_BASE | 0x00000009) | 
| A UART transfer has been aborted. | |
| #define | ECODE_EMDRV_UARTDRV_BUSY ( ECODE_EMDRV_UARTDRV_BASE | 0x00000004) | 
| The UART port is busy. | |
| #define | ECODE_EMDRV_UARTDRV_CLOCK_ERROR ( ECODE_EMDRV_UARTDRV_BASE | 0x0000000F) | 
| Unable to set a desired baudrate. | |
| #define | ECODE_EMDRV_UARTDRV_DMA_ALLOC_ERROR ( ECODE_EMDRV_UARTDRV_BASE | 0x0000000E) | 
| Unable to allocate DMA channels. | |
| #define | ECODE_EMDRV_UARTDRV_FRAME_ERROR ( ECODE_EMDRV_UARTDRV_BASE | 0x0000000D) | 
| A UART frame error. Data is ignored. | |
| #define | ECODE_EMDRV_UARTDRV_IDLE ( ECODE_EMDRV_UARTDRV_BASE | 0x00000008) | 
| No UART transfer is in progress. | |
| #define | ECODE_EMDRV_UARTDRV_ILLEGAL_HANDLE ( ECODE_EMDRV_UARTDRV_BASE | 0x00000002) | 
| An illegal UART handle. | |
| #define | ECODE_EMDRV_UARTDRV_ILLEGAL_OPERATION ( ECODE_EMDRV_UARTDRV_BASE | 0x00000005) | 
| An illegal operation on the UART port. | |
| #define | ECODE_EMDRV_UARTDRV_OK ( ECODE_OK ) | 
| A successful return value. | |
| #define | ECODE_EMDRV_UARTDRV_PARAM_ERROR ( ECODE_EMDRV_UARTDRV_BASE | 0x00000003) | 
| An illegal input parameter. | |
| #define | ECODE_EMDRV_UARTDRV_PARITY_ERROR ( ECODE_EMDRV_UARTDRV_BASE | 0x0000000C) | 
| A UART parity error frame. Data is ignored. | |
| #define | ECODE_EMDRV_UARTDRV_QUEUE_EMPTY ( ECODE_EMDRV_UARTDRV_BASE | 0x0000000B) | 
| A UART operation queue is empty. | |
| #define | ECODE_EMDRV_UARTDRV_QUEUE_FULL ( ECODE_EMDRV_UARTDRV_BASE | 0x0000000A) | 
| A UART operation queue is full. | |
| #define | ECODE_EMDRV_UARTDRV_WAITING ( ECODE_EMDRV_UARTDRV_BASE | 0x00000001) | 
| An operation is waiting in queue. | |
| #define | UARTDRV_STATUS_RXBLOCK (1 << 3) | 
| The receiver is blocked; incoming frames will be discarded. | |
| #define | UARTDRV_STATUS_RXDATAV (1 << 7) | 
| Data is available in the receive buffer. | |
| #define | UARTDRV_STATUS_RXEN (1 << 0) | 
| The receiver is enabled. | |
| #define | UARTDRV_STATUS_RXFULL (1 << 8) | 
| The receive buffer is full. | |
| #define | UARTDRV_STATUS_TXBL (1 << 6) | 
| The transmit buffer is empty. | |
| #define | UARTDRV_STATUS_TXC (1 << 5) | 
| A transmit operation is complete. No more data is available in the transmit buffer and shift register. | |
| #define | UARTDRV_STATUS_TXEN (1 << 1) | 
| The transmitter is enabled. | |
| #define | UARTDRV_STATUS_TXIDLE (1 << 13) | 
| The transmitter is idle. | |
| #define | UARTDRV_STATUS_TXTRI (1 << 4) | 
| The transmitter is tristated. | |
| Typedefs | |
| typedef enum UARTDRV_AbortType | UARTDRV_AbortType_t | 
| Transfer abort type. | |
| typedef void(* | UARTDRV_Callback_t ) (struct UARTDRV_HandleData *handle, Ecode_t transferStatus, uint8_t *data, UARTDRV_Count_t transferCount) | 
| UARTDRV transfer completion callback function. | |
| typedef uint32_t | UARTDRV_Count_t | 
| A UART transfer count. | |
| typedef enum UARTDRV_FlowControlState | UARTDRV_FlowControlState_t | 
| Flow Control state. | |
| typedef enum UARTDRV_FlowControlType | UARTDRV_FlowControlType_t | 
| Flow Control method. | |
| typedef UARTDRV_HandleData_t * | UARTDRV_Handle_t | 
| Handle pointer. | |
| typedef struct UARTDRV_HandleData | UARTDRV_HandleData_t | 
| typedef uint32_t | UARTDRV_Status_t | 
| A UART status return type. Bitfield of UARTDRV_STATUS_* values. | |
| Enumerations | |
| enum | UARTDRV_AbortType
         
         { uartdrvAbortTransmit = 1, uartdrvAbortReceive = 2, uartdrvAbortAll = 3 } | 
| Transfer abort type. | |
| enum | UARTDRV_FlowControlState
         
         { uartdrvFlowControlOn = 0, uartdrvFlowControlOff = 1, uartdrvFlowControlAuto = 2 } | 
| Flow Control state. | |
| enum | UARTDRV_FlowControlType
         
         { uartdrvFlowControlNone = 0, uartdrvFlowControlSw = 1, uartdrvFlowControlHw = 2, uartdrvFlowControlHwUart = 3 } | 
| Flow Control method. | |
| Functions | |
| Ecode_t | UARTDRV_Abort ( UARTDRV_Handle_t handle, UARTDRV_AbortType_t type) | 
| Abort ongoing UART transfers. | |
| Ecode_t | UARTDRV_DeInit ( UARTDRV_Handle_t handle) | 
| Deinitialize a UART driver instance. | |
| UARTDRV_FlowControlState_t | UARTDRV_FlowControlGetPeerStatus ( UARTDRV_Handle_t handle) | 
| Check the peer's flow control status. | |
| UARTDRV_FlowControlState_t | UARTDRV_FlowControlGetSelfStatus ( UARTDRV_Handle_t handle) | 
| Check the self flow control status. | |
| Ecode_t | UARTDRV_FlowControlIgnoreRestrain ( UARTDRV_Handle_t handle) | 
| Enable transmission when restrained by flow control. | |
| Ecode_t | UARTDRV_FlowControlSet ( UARTDRV_Handle_t handle, UARTDRV_FlowControlState_t state) | 
| Set UART flow control state. Set nRTS pin if hardware flow control is enabled. Send XON/XOFF if software flow control is enabled. | |
| Ecode_t | UARTDRV_FlowControlSetPeerStatus ( UARTDRV_Handle_t handle, UARTDRV_FlowControlState_t state) | 
| Set peer UART flow control state. Pause/resume transmit accordingly. Only for manual software flow control. | |
| UARTDRV_Count_t | UARTDRV_ForceReceive ( UARTDRV_Handle_t handle, uint8_t *data, UARTDRV_Count_t maxLength) | 
| Direct receive without interrupts or callback. This is a blocking function. | |
| Ecode_t | UARTDRV_ForceTransmit ( UARTDRV_Handle_t handle, uint8_t *data, UARTDRV_Count_t count) | 
| Direct transmit without interrupts or callback. This is a blocking function. that ignores flow control if enabled. | |
| UARTDRV_Status_t | UARTDRV_GetPeripheralStatus ( UARTDRV_Handle_t handle) | 
| Return the status of the UART peripheral associated with a given handle. | |
| uint8_t | UARTDRV_GetReceiveDepth ( UARTDRV_Handle_t handle) | 
| Return the number of queued receive operations. | |
| UARTDRV_Status_t | UARTDRV_GetReceiveStatus ( UARTDRV_Handle_t handle, uint8_t **buffer, UARTDRV_Count_t *bytesReceived, UARTDRV_Count_t *bytesRemaining) | 
| Check the status of the UART and gather information about any ongoing receive operations. | |
| uint8_t | UARTDRV_GetTransmitDepth ( UARTDRV_Handle_t handle) | 
| Returns the number of queued transmit operations. | |
| UARTDRV_Status_t | UARTDRV_GetTransmitStatus ( UARTDRV_Handle_t handle, uint8_t **buffer, UARTDRV_Count_t *bytesSent, UARTDRV_Count_t *bytesRemaining) | 
| Check the status of the UART and gather information about any ongoing transmit operations. | |
| __STATIC_INLINE Ecode_t | UARTDRV_Init ( UARTDRV_Handle_t handle, UARTDRV_InitUart_t *initData) | 
| Initialize a U(S)ART driver instance. | |
| Ecode_t | UARTDRV_InitLeuart ( UARTDRV_Handle_t handle, const UARTDRV_InitLeuart_t *initData) | 
| Initialize a LEUART driver instance. | |
| Ecode_t | UARTDRV_InitUart ( UARTDRV_Handle_t handle, const UARTDRV_InitUart_t *initData) | 
| Initialize a U(S)ART driver instance. | |
| Ecode_t | UARTDRV_PauseTransmit ( UARTDRV_Handle_t handle) | 
| Pause an ongoing transmit operation. | |
| Ecode_t | UARTDRV_Receive ( UARTDRV_Handle_t handle, uint8_t *data, UARTDRV_Count_t count, UARTDRV_Callback_t callback) | 
| Start a non-blocking receive. | |
| Ecode_t | UARTDRV_ReceiveB ( UARTDRV_Handle_t handle, uint8_t *data, UARTDRV_Count_t count) | 
| Start a blocking receive. | |
| Ecode_t | UARTDRV_ResumeTransmit ( UARTDRV_Handle_t handle) | 
| Resume a paused transmit operation. | |
| Ecode_t | UARTDRV_Transmit ( UARTDRV_Handle_t handle, uint8_t *data, UARTDRV_Count_t count, UARTDRV_Callback_t callback) | 
| Start a non-blocking transmit. | |
| Ecode_t | UARTDRV_TransmitB ( UARTDRV_Handle_t handle, uint8_t *data, UARTDRV_Count_t count) | 
| Start a blocking transmit. | |