Dela via


funktionen I2CMaster_Write

Sidhuvud: #include <applibs/i2c.h>

Utför en skrivåtgärd på ett I2C-huvudgränssnitt. Den här funktionen har samma funktioner som funktionen POSIX-skrivning(), förutom att den anger adressen till den underordnade I2C-enheten som är målet för åtgärden.

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

Parametrar

  • fd Filbeskrivning för I2C-huvudgränssnittet.

  • address Adressen till den underordnade I2C-enheten som är målet för åtgärden.

  • data De data som ska överföras till målenheten. Det här värdet kan vara NULL om längden är 0.

  • length Storleken på de data som ska överföras. Det här värdet kan vara 0.

Fel

Returnerar -1 om ett fel uppstår och anger errno felvärdet.

  • EBUSY: gränssnittet är upptaget eller I2C-linjen hålls låg.

  • ENXIO: Åtgärden fick inget ACK från den underordnade enheten.

  • ETIMEDOUT: åtgärden avslutades innan den slutfördes. kan du anropa funktionen I2CMaster_SetTimeout för att justera timeoutvaraktigheten.

errno Andra kan också anges, sådana fel är inte deterministiska och samma beteende kanske inte behålls via systemuppdateringar.

Returvärde

Returnerar det antal byte som skrivits korrekt, eller -1 för fel, i vilket fall errno felvärdet anges. En partiell skrivning, inklusive en skrivning på 0 byte, anses vara en framgång.

Krav för programmanifest

För att få åtkomst till ett I2c-gränssnitt måste programmet identifiera det i fältet I2cMaster i programmanifestet.