Jump to main content

##

# 2.130.12 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