Kinetis SDK v.2.0 API Reference Manual  Rev. 0
Freescale Semiconductor, Inc.
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
UART DMA Driver

Overview

Files

file  fsl_uart_dma.h
 

Data Structures

struct  uart_dma_handle_t
 UART DMA handle. More...
 

Typedefs

typedef void(* uart_dma_transfer_callback_t )(UART_Type *base, uart_dma_handle_t *handle, status_t status, void *userData)
 UART transfer callback function. More...
 

EDMA transactional

void UART_TransferCreateHandleDMA (UART_Type *base, uart_dma_handle_t *handle, uart_dma_transfer_callback_t callback, void *userData, dma_handle_t *txDmaHandle, dma_handle_t *rxDmaHandle)
 Initializes the UART handle which is used in transactional functions and sets the callback. More...
 
status_t UART_TransferSendDMA (UART_Type *base, uart_dma_handle_t *handle, uart_transfer_t *xfer)
 Sends data using DMA. More...
 
status_t UART_TransferReceiveDMA (UART_Type *base, uart_dma_handle_t *handle, uart_transfer_t *xfer)
 Receives data using DMA. More...
 
void UART_TransferAbortSendDMA (UART_Type *base, uart_dma_handle_t *handle)
 Aborts the send data using DMA. More...
 
void UART_TransferAbortReceiveDMA (UART_Type *base, uart_dma_handle_t *handle)
 Aborts the received data using DMA. More...
 
status_t UART_TransferGetSendCountDMA (UART_Type *base, uart_dma_handle_t *handle, uint32_t *count)
 Get the number of bytes that have been written to UART TX register. More...
 
status_t UART_TransferGetReceiveCountDMA (UART_Type *base, uart_dma_handle_t *handle, uint32_t *count)
 Get the number of bytes that have been received. More...
 

Data Structure Documentation

struct _uart_dma_handle

Data Fields

UART_Type * base
 UART peripheral base address. More...
 
uart_dma_transfer_callback_t callback
 Callback function. More...
 
void * userData
 UART 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...
 
dma_handle_ttxDmaHandle
 The DMA TX channel used. More...
 
dma_handle_trxDmaHandle
 The DMA RX channel used. More...
 
volatile uint8_t txState
 TX transfer state. More...
 
volatile uint8_t rxState
 RX transfer state.
 

Field Documentation

UART_Type* uart_dma_handle_t::base
uart_dma_transfer_callback_t uart_dma_handle_t::callback
void* uart_dma_handle_t::userData
size_t uart_dma_handle_t::rxDataSizeAll
size_t uart_dma_handle_t::txDataSizeAll
dma_handle_t* uart_dma_handle_t::txDmaHandle
dma_handle_t* uart_dma_handle_t::rxDmaHandle
volatile uint8_t uart_dma_handle_t::txState

Typedef Documentation

typedef void(* uart_dma_transfer_callback_t)(UART_Type *base, uart_dma_handle_t *handle, status_t status, void *userData)

Function Documentation

void UART_TransferCreateHandleDMA ( UART_Type *  base,
uart_dma_handle_t *  handle,
uart_dma_transfer_callback_t  callback,
void *  userData,
dma_handle_t txDmaHandle,
dma_handle_t rxDmaHandle 
)
Parameters
baseUART peripheral base address.
handlePointer to uart_dma_handle_t structure.
callbackUART callback, NULL means no callback.
userDataUser callback function data.
rxDmaHandleUser requested DMA handle for RX DMA transfer.
txDmaHandleUser requested DMA handle for TX DMA transfer.
status_t UART_TransferSendDMA ( UART_Type *  base,
uart_dma_handle_t *  handle,
uart_transfer_t xfer 
)

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

Parameters
baseUART peripheral base address.
handleUART handle pointer.
xferUART DMA transfer structure. See uart_transfer_t.
Return values
kStatus_Successif succeed, others failed.
kStatus_UART_TxBusyPrevious transfer on going.
kStatus_InvalidArgumentInvalid argument.
status_t UART_TransferReceiveDMA ( UART_Type *  base,
uart_dma_handle_t *  handle,
uart_transfer_t xfer 
)

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

Parameters
baseUART peripheral base address.
handlePointer to uart_dma_handle_t structure.
xferUART DMA transfer structure. See uart_transfer_t.
Return values
kStatus_Successif succeed, others failed.
kStatus_UART_RxBusyPrevious transfer on going.
kStatus_InvalidArgumentInvalid argument.
void UART_TransferAbortSendDMA ( UART_Type *  base,
uart_dma_handle_t *  handle 
)

This function aborts the sent data using DMA.

Parameters
baseUART peripheral base address.
handlePointer to uart_dma_handle_t structure.
void UART_TransferAbortReceiveDMA ( UART_Type *  base,
uart_dma_handle_t *  handle 
)

This function abort receive data which using DMA.

Parameters
baseUART peripheral base address.
handlePointer to uart_dma_handle_t structure.
status_t UART_TransferGetSendCountDMA ( UART_Type *  base,
uart_dma_handle_t *  handle,
uint32_t *  count 
)

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

Parameters
baseUART peripheral base address.
handleUART handle pointer.
countSend bytes count.
Return values
kStatus_NoTransferInProgressNo send in progress.
kStatus_InvalidArgumentParameter is invalid.
kStatus_SuccessGet successfully through the parameter count;
status_t UART_TransferGetReceiveCountDMA ( UART_Type *  base,
uart_dma_handle_t *  handle,
uint32_t *  count 
)

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

Parameters
baseUART peripheral base address.
handleUART handle pointer.
countReceive bytes count.
Return values
kStatus_NoTransferInProgressNo receive in progress.
kStatus_InvalidArgumentParameter is invalid.
kStatus_SuccessGet successfully through the parameter count;