1.25.6.43 FLEXCOMx_SPI_IsBusy Function

C

/* x = FLEXCOM instance number */

/* SPI master (non-blocking) and slave mode */

bool FLEXCOMx_SPI_IsBusy (void):

Summary

Returns transfer status of FLEXCOM SPI

Description

SPI master mode

In master mode, this function returns true if the FLEXCOM SPI module is busy with a transfer. The application can use the function to check if FLEXCOM SPI module is busy before calling any of the data transfer functions. The library does not allow a data transfer operation if another transfer operation is already in progress. This function can be used as an alternative to the callback function when the library is operating in interrupt mode.

SPI slave mode

In slave mode, this function returns true if SPI slave is busy with a data transfer. The status is returned true when the SPI chip select is driven to active state by SPI master. The status is returned as false when the SPI chip select is driven inactive.

Precondition

The FLEXCOMx_SPI_Initialize() should have been called once. The module should have been configured for interrupt mode operation in MHC.

Parameters

None.

Returns

Param Description
true Transfer is currently in progress (in master mode) or chip select is in active state when SPI is in slave mode
false Transfer is completed (in master mode) or chip select is in inactive state (in slave mode)

Example

SPI master (non-blocking mode) mode

// The following code example demonstrates the use of the
// FLEXCOMx_SPI_IsBusy() function. This example shows a blocking while
// loop. The function can also be called periodically.

uint8_t dataBuffer[20];

FLEXCOM0_SPI_Initialize();
FLEXCOM0_SPI_Write(dataBuffer, 20);

while (FLEXCOM0_SPI_IsBusy() == true)
{
    // Wait here till the transfer is done.
}

SPI slave mode

while (FLEXCOM0_SPI_IsBusy() == true)
{
    // Wait here till the chip select is asserted by the SPI master
}

Remarks

None