I2CMaster_Read functie
Header: #include <applibs/i2c.h>
Voert een leesbewerking uit op een I2C-hoofdinterface. Deze functie biedt dezelfde functionaliteit als de functie POSIX read(2), met uitzondering van het adres van het onderliggende I2C-apparaat dat het doel van de bewerking is.
ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);
Parameters
fd
De bestandsdescriptor voor de I2C-hoofdinterface.address
Het adres van het onderliggende I2C-apparaat dat de bron is voor de leesbewerking.buffer
De uitvoerbuffer die gegevens ontvangt van het onderliggende apparaat. Deze buffer moet voldoende ruimte bevatten om bytes te ontvangenmaxLength
. Dit kan NULL zijn alsmaxLength
dit 0 is.maxLength
Het maximum aantal bytes dat moet worden ontvangen. De waarde kan 0 zijn.
Fouten
Retourneert -1 als er een fout optreedt en wordt ingesteld errno
op de foutwaarde.
EBUSY: de interface is bezet of de I2C-kloklijn (SCL) wordt laag gehouden.
ENXIO: de bewerking heeft geen ACK ontvangen van het onderliggende apparaat.
ETIMEDOUT: er is een time-out opgetreden voordat de bewerking werd voltooid; u kunt de functie I2CMaster_SetTimeout gebruiken om de time-outduur aan te passen.
errno
Andere fouten kunnen ook worden opgegeven; dergelijke fouten zijn niet deterministisch en hetzelfde gedrag wordt mogelijk niet bewaard via systeemupdates.
Retourwaarde
Retourneert het aantal bytes dat is gelezen; of -1 voor fout, in welk geval errno
wordt ingesteld op de foutwaarde. Een gedeeltelijke leesbewerking, inclusief een leesbewerking van 0 bytes, wordt beschouwd als een geslaagde bewerking.
Vereisten voor toepassingsmanifest
Voor toegang tot een I2c-interface moet uw toepassing deze identificeren in het veld I2cMaster van het toepassingsmanifest.