1.8.7.13 FLEXCOMx_USART_ReadThresholdSet Function

C

/* x = FLEXCOM instance number */

/* Ring buffer mode */

void FLEXCOMx_USART_ReadThresholdSet(uint32_t nBytesThreshold)

Summary

This API allows the application to set a threshold level on the number of bytes of data available in the receive buffer

Description

This API allows the application to set a threshold level on the number of bytes of data available in the receive buffer. Once the threshold is reached a notification is given to the application if it is enabled.

Precondition

FLEXCOMx_USART_Initialize must have been called for the associated FLEXCOM_USART instance.

Parameters

Param Description
nBytesThreshold Threshold value for number of bytes available in the receivebuffer after which a notification must be given

Returns

None

Example

uint8_t rxBuffer[50];
uint32_t nBytes;

void usartReadEventHandler(FLEXCOM_USART_EVENT event, uintptr_t context )
{
    uint32_t nBytesAvailable = 0;
    
    if (event == FLEXCOM_USART_EVENT_READ_THRESHOLD_REACHED)
    {
        // Receiver should have the thershold number of bytes in the ring buffer
        nBytesAvailable = FLEXCOM0_USART_ReadCountGet();
        
        nBytesRead += FLEXCOM0_USART_Read((uint8_t*)&rxBuffer[nBytesRead], nBytesAvailable);
    }
}

//----------------------------------------------------------//

// Register a callback for read events
FLEXCOM0_USART_ReadCallbackRegister(usartReadEventHandler, (uintptr_t) NULL);

// Set a threshold value to receive a callback after every 10 characters are received
FLEXCOM0_USART_ReadThresholdSet(10);

// Enable RX event notifications
FLEXCOM0_USART_ReadNotificationEnable(true, false);

Remarks

None