Condividi tramite


Funzione I2CMaster_Write

Intestazione: #include <applicazioni/i2c.h>

Esegue un'operazione di scrittura su un'interfaccia master I2C. Questa funzione fornisce la stessa funzionalità della funzione POSIX write(), con la differenza che specifica l'indirizzo del dispositivo I2C subordinato che è la destinazione dell'operazione.

ssize_t I2CMaster_Write(int fd, I2C_DeviceAddress address, const uint8_t *data, size_t length);

Parametri

  • fd Descrittore di file per l'interfaccia master I2C.

  • address Indirizzo del dispositivo I2C subordinato che rappresenta la destinazione dell'operazione.

  • data I dati da trasmettere al dispositivo di destinazione. Questo valore può essere NULL se la lunghezza è 0.

  • length Le dimensioni dei dati da trasmettere. Questo 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 I2C è bassa.

  • ENXIO: l'operazione non ha ricevuto un ACK dal dispositivo subordinato.

  • ETIMEDOUT: timeout dell'operazione prima del completamento; puoi chiamare 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 scritti correttamente oppure -1 per l'errore, nel qual caso errno verrà impostato sul valore di errore. Una scrittura parziale, compresa una scrittura 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.