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říjemmaxLength
bajtů. Pokud je hodnota 0, může to být hodnota NULLmaxLength
.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.