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.

  • addressIndirizzo 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 ricevere maxLength byte. Può essere NULL se maxLength è 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.