All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
LPUART eDMA Driver
LPUART: Low Power UART Driver

## Overview

## Data Structures

struct | lpuart_edma_handle_t
| LPUART eDMA handle. More...

## Typedefs

typedef void(* | lpuart_edma_transfer_callback_t )(LPUART_Type *base, lpuart_edma_handle_t *handle, status_t status, void *userData)
| LPUART transfer callback function. More...

## eDMA transactional

void | LPUART_TransferCreateHandleEDMA (LPUART_Type *base, lpuart_edma_handle_t *handle, lpuart_edma_transfer_callback_t callback, void *userData, edma_handle_t *txEdmaHandle, edma_handle_t *rxEdmaHandle)
| Initializes the LPUART handle which is used in transactional functions. More...
status_t | LPUART_SendEDMA (LPUART_Type *base, lpuart_edma_handle_t *handle, lpuart_transfer_t *xfer)
| Sends data using eDMA. More...
status_t | LPUART_ReceiveEDMA (LPUART_Type *base, lpuart_edma_handle_t *handle, lpuart_transfer_t *xfer)
| Receives data using eDMA. More...
void | LPUART_TransferAbortSendEDMA (LPUART_Type *base, lpuart_edma_handle_t *handle)
| Aborts the sent data using eDMA. More...
void | LPUART_TransferAbortReceiveEDMA (LPUART_Type *base, lpuart_edma_handle_t *handle)
| Aborts the received data using eDMA. More...
status_t | LPUART_TransferGetSendCountEDMA (LPUART_Type *base, lpuart_edma_handle_t *handle, uint32_t *count)
| Get the number of bytes that have been written to LPUART TX register. More...
status_t | LPUART_TransferGetReceiveCountEDMA (LPUART_Type *base, lpuart_edma_handle_t *handle, uint32_t *count)
| Get the number of bytes that have been received. More...

## Data Structure Documentation

struct _lpuart_edma_handle

### Data Fields

lpuart_edma_transfer_callback_t | callback
| Callback function. More...
void * | userData
| LPUART callback function parameter. More...
size_t | rxDataSizeAll
| Size of the data to receive. More...
size_t | txDataSizeAll
| Size of the data to send out. More...
edma_handle_t * | txEdmaHandle
| The eDMA TX channel used. More...
edma_handle_t * | rxEdmaHandle
| The eDMA RX channel used. More...
volatile uint8_t | txState
| TX transfer state. More...
volatile uint8_t | rxState
| RX transfer state.

#### Field Documentation

lpuart_edma_transfer_callback_t lpuart_edma_handle_t::callback

void* lpuart_edma_handle_t::userData

size_t lpuart_edma_handle_t::rxDataSizeAll

size_t lpuart_edma_handle_t::txDataSizeAll

edma_handle_t* lpuart_edma_handle_t::txEdmaHandle

edma_handle_t* lpuart_edma_handle_t::rxEdmaHandle

volatile uint8_t lpuart_edma_handle_t::txState

## Typedef Documentation

typedef void(* lpuart_edma_transfer_callback_t)(LPUART_Type *base, lpuart_edma_handle_t *handle, status_t status, void *userData)

## Function Documentation

void LPUART_TransferCreateHandleEDMA | ( | LPUART_Type * | base,
|  | lpuart_edma_handle_t * | handle,
|  | lpuart_edma_transfer_callback_t | callback,
|  | void * | userData,
|  | edma_handle_t * | txEdmaHandle,
|  | edma_handle_t * | rxEdmaHandle
| ) |  |

Parameters

  base | LPUART peripheral base address.
  handle | Pointer to lpuart_edma_handle_t structure.
  callback | Callback function.
  userData | User data.
  txEdmaHandle | User requested DMA handle for TX DMA transfer.
  rxEdmaHandle | User requested DMA handle for RX DMA transfer.

status_t LPUART_SendEDMA | ( | LPUART_Type * | base,
|  | lpuart_edma_handle_t * | handle,
|  | lpuart_transfer_t * | xfer
| ) |  |

This function sends data using eDMA. This is a non-blocking function, which returns right away. When all data is sent, the send callback function is called.

Parameters

  base | LPUART peripheral base address.
  handle | LPUART handle pointer.
  xfer | LPUART eDMA transfer structure. See lpuart_transfer_t.

Return values

  kStatus_Success | if succeed, others failed.
  kStatus_LPUART_TxBusy | Previous transfer on going.
  kStatus_InvalidArgument | Invalid argument.

status_t LPUART_ReceiveEDMA | ( | LPUART_Type * | base,
|  | lpuart_edma_handle_t * | handle,
|  | lpuart_transfer_t * | xfer
| ) |  |

This function receives data using eDMA. This is non-blocking function, which returns right away. When all data is received, the receive callback function is called.

Parameters

  base | LPUART peripheral base address.
  handle | Pointer to lpuart_edma_handle_t structure.
  xfer | LPUART eDMA transfer structure, see lpuart_transfer_t.

Return values

  kStatus_Success | if succeed, others fail.
  kStatus_LPUART_RxBusy | Previous transfer ongoing.
  kStatus_InvalidArgument | Invalid argument.

void LPUART_TransferAbortSendEDMA | ( | LPUART_Type * | base,
|  | lpuart_edma_handle_t * | handle
| ) |  |

This function aborts the sent data using eDMA.

Parameters

  base | LPUART peripheral base address.
  handle | Pointer to lpuart_edma_handle_t structure.

void LPUART_TransferAbortReceiveEDMA | ( | LPUART_Type * | base,
|  | lpuart_edma_handle_t * | handle
| ) |  |

This function aborts the received data using eDMA.

Parameters

  base | LPUART peripheral base address.
  handle | Pointer to lpuart_edma_handle_t structure.

status_t LPUART_TransferGetSendCountEDMA | ( | LPUART_Type * | base,
|  | lpuart_edma_handle_t * | handle,
|  | uint32_t * | count
| ) |  |

This function gets the number of bytes that have been written to LPUART TX register by DMA.

Parameters

  base | LPUART peripheral base address.
  handle | LPUART handle pointer.
  count | Send bytes count.

Return values

  kStatus_NoTransferInProgress | No send in progress.
  kStatus_InvalidArgument | Parameter is invalid.
  kStatus_Success | Get successfully through the parameter `count`;

status_t LPUART_TransferGetReceiveCountEDMA | ( | LPUART_Type * | base,
|  | lpuart_edma_handle_t * | handle,
|  | uint32_t * | count
| ) |  |

This function gets the number of bytes that have been received.

Parameters

  base | LPUART peripheral base address.
  handle | LPUART handle pointer.
  count | Receive bytes count.

Return values

  kStatus_NoTransferInProgress | No receive in progress.
  kStatus_InvalidArgument | Parameter is invalid.
  kStatus_Success | Get successfully through the parameter `count`;