1.38.21.6 SERCOMx_USART_WriteCallbackRegister Function

C

/* x = SERCOM instance number */

/* Non-blocking mode */

void SERCOMx_USART_WriteCallbackRegister( SERCOM_USART_CALLBACK callback, uintptr_t context )

/* Ring buffer mode */

void SERCOMx_USART_WriteCallbackRegister( SERCOM_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

SERCOMx_USART_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(USART_ERROR_NONE != SERCOM0_USART_ErrorGet())
    {
        //Handle error case
    }
    else
    {
        //Transfer completed successfully
    }
}

SERCOM0_USART_WriteCallbackRegister(usartWriteEventHandler, (uintptr_t)NULL);

Ring buffer mode

bool txThresholdEventReceived = false;

void usartWriteEventHandler(SERCOM_USART_EVENT event, uintptr_t context )
{
    if (event == SERCOM_USART_EVENT_WRITE_THRESHOLD_REACHED)
    {
        txThresholdEventReceived = true;
    }
}

SERCOM0_USART_WriteCallbackRegister(usartWriteEventHandler, (uintptr_t)NULL);

Remarks

None