1.16.21.8 UARTx_WriteCallbackRegister Function

C

/* x = UART instance number */

/* Non-blocking mode */

void UARTx_WriteCallbackRegister( UART_CALLBACK callback, uintptr_t context )

/* Ring buffer mode */

void UARTx_WriteCallbackRegister( UART_RING_BUFFER_CALLBACK callback, uintptr_t context)

Summary

Sets the pointer to the function (and it's context) to be called when the given UART's write events occur.

Description

This function sets the pointer to a client function to be called "back" when the given UART's write events occur. It also passes a context value (usually a pointer to a context structure) that is passed into the function when it is called.

Precondition

UARTx_Initialize must have been called for the associated UART instance.

Parameters

Param Description
callback Pointer to the function to be called when the write transfer has completed. Setting this to NULL will disable the callback feature.
context A value (usually a pointer) passed (unused) into the function identified by the callback parameter.

Returns

None.

Example

Non-blocking mode

void UARTWriteEventHandler ( uintptr_t context )
{
    if(UART1_ErrorGet() != UART_ERROR_NONE)
    {
        //Handle error case
    }
    else
    {
        //Transfer completed successfully
    }
}

UART1_WriteCallbackRegister(UARTWriteEventHandler, (uintptr_t)NULL);

Ring buffer mode

bool txThresholdEventReceived = false;

void UARTWriteEventHandler(UART_EVENT event, uintptr_t context )
{
    if (event == UART_EVENT_WRITE_THRESHOLD_REACHED)
    {
        txThresholdEventReceived = true;
    }
}

UART1_WriteCallbackRegister(UARTWriteEventHandler, (uintptr_t)NULL);

Remarks

None