Sdílet prostřednictvím


funkce I2CMaster_Write

Záhlaví: #include <applibs/i2c.h>

Provede operaci zápisu na hlavním rozhraní I2C. Tato funkce poskytuje stejné funkce jako funkce POSIX write() s tím rozdílem, že určuje adresu podřízeného zařízení I2C, které je cílem operace.

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

Parametry

  • fd Popisovač souboru pro hlavní rozhraní I2C.

  • address Adresa podřízeného zařízení I2C, které je cílem operace.

  • data Data, která se mají přenést do cílového zařízení. Tato hodnota může mít hodnotu NULL, pokud je délka 0.

  • length Velikost přenášených dat Tato hodnota může být 0.

Chyby

Vrátí hodnotu -1, pokud dojde k chybě, a nastaví errno se na chybovou hodnotu.

  • EBUSY: Rozhraní je zaneprázdněno nebo je řádek I2C přidržován nízko.

  • ENXIO: Operace neobdržela ACK z podřízeného zařízení.

  • ETIMEDOUT: časový limit operace vypršel před dokončením; můžete voláním funkce I2CMaster_SetTimeout upravit dobu časového limitu.

Je také možné zadat všechny ostatní errno chyby. Tyto chyby nejsou deterministické a stejné chování nemusí být zachováno prostřednictvím aktualizací systému.

Vrácená hodnota

Vrátí počet bajtů, které byly úspěšně zapsány, nebo -1 pro selhání. V tomto případě errno se nastaví na chybovou hodnotu. Částečný zápis, včetně zápisu 0 bajtů, se považuje za úspěšný.

Požadavky manifestu aplikace

Pokud chcete získat přístup k rozhraní I2c, vaše aplikace ho musí identifikovat v poli I2cMaster manifestu aplikace.