Delen via


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 ontvangen maxLength . Dit kan NULL zijn als maxLength 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.