Sdílet prostřednictvím


funkce I2CMaster_Read

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

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

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

Parametry

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

  • address Adresa podřízeného zařízení I2C, které je zdrojem operace čtení.

  • buffer Výstupní vyrovnávací paměť, která přijímá data z podřízeného zařízení. Tato vyrovnávací paměť musí obsahovat dostatek místa pro příjem maxLength bajtů. Pokud je hodnota 0, může to být hodnota NULL maxLength .

  • maxLength Maximální počet bajtů, které se mají přijmout. 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ěné nebo se drží nízká hodinová čára I2C (SCL).

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

  • ETIMEDOUT: časový limit operace vypršel před dokončením; k úpravě doby trvání časového limitu můžete použít funkci I2CMaster_SetTimeout .

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ě přečteny. nebo -1 pro selhání. V tomto případě errno se nastaví na chybovou hodnotu. Operace částečného čtení, včetně čtení 0 bajtů, se považuje za úspěšnou.

Požadavky manifestu aplikace

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