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.
|
|