Funzione I2CMaster_ReadI2CMaster_Read Function

Intestazione: #include <applibs/i2c.h>Header: #include <applibs/i2c.h>

Esegue un'operazione di lettura su un'interfaccia master I2C.Performs a read operation on an I2C master interface. Questa funzione fornisce la stessa funzionalità della funzione POSIX read(2), con la differenza che specifica l'indirizzo del dispositivo I2C subordinato che corrisponde alla destinazione dell'operazione.This function provides the same functionality as the POSIX read(2) function except it specifies the address of the subordinate I2C device that is the target of the operation.

ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);

ParametriParameters

  • fd Il descrittore del file per l'interfaccia master I2C.fd The file descriptor for the I2C master interface.

  • address L'indirizzo del dispositivo I2C subordinato che corrisponde all'origine dell'operazione di lettura.address The address of the subordinate I2C device that is the source for the read operation.

  • buffer Il buffer di output che riceve i dati dal dispositivo subordinato.buffer The output buffer that receives data from the subordinate device. Lo spazio disponibile in questo buffer deve essere sufficiente per ricevere il numero di byte maxLength.This buffer must contain enough space to receive maxLength bytes. Può essere NULL se maxLength è 0.This can be NULL if maxLength is 0.

  • maxLength Il numero massimo di byte da ricevere.maxLength The maximum number of bytes to receive. Il valore può essere 0.The value can be 0.

ErrorsErrors

Restituisce-1 se viene rilevato un errore e imposta sul errno valore di errore.Returns -1 if an error is encountered and sets errno to the error value.

  • EBUSY: l'interfaccia è occupata oppure la linea di clock (SCL) di I2C viene tenuta bassa.EBUSY: the interface is busy or the I2C clock line (SCL) is being held low.

  • ENXIO: l'operazione non ha ricevuto un messaggio ACK dal dispositivo subordinato.ENXIO: the operation didn't receive an ACK from the subordinate device.

  • ETIMEDOUT: si è verificato un timeout dell'operazione prima del completamento; è possibile usare la funzione I2CMaster_SetTimeout per regolare la durata del timeout.ETIMEDOUT: the operation timed out before completing; you can use the I2CMaster_SetTimeout function to adjust the timeout duration.

errnoÈ possibile specificare anche qualsiasi altro tipo di errore. tali errori non sono deterministici e lo stesso comportamento potrebbe non essere mantenuto tramite gli aggiornamenti del sistema.Any other errno may also be specified; such errors aren't deterministic and the same behavior might not be retained through system updates.

Valore restituitoReturn value

Restituisce il numero di byte letti correttamente. oppure-1 per l'errore, nel qual caso errno verrà impostato sul valore di errore.Returns the number of bytes successfully read; or -1 for failure, in which case errno will be set to the error value. Un'operazione di lettura parziale, inclusa una lettura di 0 byte, viene considerata riuscita.A partial read operation, including a read of 0 bytes, is considered a success.

Requisiti del manifesto dell'applicazioneApplication manifest requirements

Per accedere a un'interfaccia I2C, l'applicazione deve identificarla nel campo I2cMaster del manifesto dell'applicazione.To access an I2c interface, your application must identify it in the I2cMaster field of the application manifest.