1.27.25.8 1.34.25.8 1.35.18.8 TWIHSx_Read Function
C
/* x = TWIHS instance number */
/* TWIHS master mode */
bool TWIHSx_Read(uint16_t address, uint8_t *pdata, size_t length)
Summary
Reads data from the slave.
Description
This function reads the data from a slave on the bus. The function will attempt to read length number of bytes into pdata buffer from a slave whose address is specified as address. The TWIHS Master generates a Start condition, reads the data and then generates a Stop Condition. If the slave NAKs the request or a bus error is encountered on the bus, the transfer is terminated. The application can call the TWIHSx_ErrorGet() function to know the cause of the error. The function is non-blocking. It initiates bus activity and returns immediately. The transfer is completed in the peripheral interrupt. A transfer request cannot be placed when another transfer is in progress. Calling the read function when another function is already in progress will cause the function to return false. The library will call the registered callback function when the transfer has completed if callback is registered.
Precondition
TWIHSx_Initialize must have been called for the associated TWIHS instance.
Parameters
Param | Description |
---|---|
address | 7-bit / 10-bit slave address. |
pdata | pointer to destination data buffer |
length | Number of bytes to be read |
Returns
true - The request was placed successfully and the bus activity was initiated
false - The request fails, if there was already a transfer in progress when this function was called
Example
uint8_t myData [NUM_BYTES];
if(!TWIHS1_Read( SLAVE_ADDR, &myData[0], NUM_BYTES ))
{
// error handling
}
Remarks
None