1.34.27.6 USARTx_WriteCallbackRegister Function

C

/* x = USART instance number */

/* Non-blocking mode */

void USARTx_WriteCallbackRegister( USART_CALLBACK callback, uintptr_t context )

/* Ring buffer mode */

void USARTx_WriteCallbackRegister( USART_RING_BUFFER_CALLBACK callback, uintptr_t context)

Summary

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

Description

This function sets the pointer to a client function to be called "back" when the given USART'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

USARTx_Initialize must have been called for the associated USART 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 usartWriteEventHandler ( uintptr_t context )
{
    if(USART1_ErrorGet() != USART_ERROR_NONE)
    {
        //Handle error case
    }
    else
    {
        //Transfer completed successfully
    }
}

USART1_WriteCallbackRegister(usartWriteEventHandler, (uintptr_t)NULL);

Ring buffer mode

bool txThresholdEventReceived = false;

void usartWriteEventHandler(USART_EVENT event, uintptr_t context )
{
    if (event == USART_EVENT_WRITE_THRESHOLD_REACHED)
    {
        txThresholdEventReceived = true;
    }
}

USART1_WriteCallbackRegister(usartWriteEventHandler, (uintptr_t)NULL);

Remarks

None