Funzione I2CMaster_Read
Intestazione: #include <applicazioni/i2c.h>
Esegue un'operazione di lettura su un'interfaccia master I2C. Questa funzione fornisce la stessa funzionalità della funzione POSIX read(2) con la differenza che specifica l'indirizzo del dispositivo I2C subordinato che è la destinazione dell'operazione.
ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);
Parametri
fd
Descrittore di file per l'interfaccia master I2C.address
Indirizzo del dispositivo I2C subordinato che rappresenta l'origine per l'operazione di lettura.buffer
Buffer di output che riceve i dati dal dispositivo subordinato. Questo buffer deve contenere spazio sufficiente per riceveremaxLength
byte. Può essere NULL semaxLength
è 0.maxLength
Numero massimo di byte da ricevere. Il valore può essere 0.
Errori
Restituisce -1 se si verifica un errore e imposta errno
il valore di errore.
EBUSY: l'interfaccia è occupata o la linea dell'orologio I2C (SCL) è bassa.
ENXIO: l'operazione non ha ricevuto un ACK dal dispositivo subordinato.
ETIMEDOUT: timeout dell'operazione prima del completamento; è possibile usare la funzione I2CMaster_SetTimeout per modificare la durata del timeout.
Potrebbero anche essere specificati altri errno
errori. Tali errori non sono deterministici e lo stesso comportamento potrebbe non essere mantenuto tramite gli aggiornamenti di sistema.
Valore restituito
Restituisce il numero di byte letti correttamente; o -1 per errore, nel qual caso errno
verrà impostato sul valore di errore. Un'operazione di lettura parziale, inclusa una lettura di 0 byte, è considerata un successo.
Requisiti del manifesto dell'applicazione
Per accedere a un'interfaccia I2c, l'applicazione deve identificarla nel campo I2cMaster del manifesto dell'applicazione.