1.2.21.18 1.3.25.18 1.4.21.18 1.5.25.18 1.6.22.18 1.7.23.18 1.9.19.18 1.29.23.18 1.30.18.18 1.31.18.18 1.32.26.18 1.33.16.18 1.37.18.18 1.38.21.18 1.39.18.18 1.40.20.18 SERCOMx_USART_ReadCountGet Function
C
/* x = SERCOM instance number */
/* Non-blocking and ring buffer mode */
size_t SERCOMx_USART_ReadCountGet( void )
Summary
Non-blocking mode
Gets the byte count of processed bytes for a given USART read operation
Ring buffer mode
Returns the number of bytes available in the internal receive buffer of the PLIB
Description
Non-blocking mode
This function gets the count of processed bytes for an on-going or last completed USART Read operation. This function can be used to track the progress of the non-blocking read operation. In case of an error, this function can be used to track the number of bytes that were received before the error occurred.
Ring buffer mode
This function returns the number of bytes available in the receive buffer
Precondition
SERCOMx_USART_Initialize must have been called for the associated USART instance.
Parameters
None.
Returns
Non-blocking mode
Returns count of bytes completed/processed to the current Receive buffer. In 9-bit mode, it returns the number of 9-bit data processed.
Ring buffer mode
The API returns the number of bytes pending to be read out from the receive buffer. If 9-bit mode is enabled, then the API returns the number of 9-bit data pending to be read out from the receive buffer.
Example
Non-blocking mode
size_t count; count = SERCOM0_USART_ReadCountGet(); if(COUNT_EXPECTED > count) { //More bytes are expected, wait }
Ring buffer mode
uint8_t rxBuffer[100]; uint32_t nBytesAvailable; nBytesAvailable = SERCOM1_USART_ReadCountGet(); if (nBytesAvailable != 0) { SERCOM1_USART_Read((uint8_t*)rxBuffer, nBytesAvailable) }
Remarks
None