Share via


I2CMaster_Write İşlevi

Üst bilgi: #include <applibs/i2c.h>

I2C ana arabiriminde yazma işlemi gerçekleştirir. Bu işlev, işlemin hedefi olan alt I2C cihazının adresini belirtmesi dışında POSIX write() işleviyle aynı işlevi sağlar.

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

Parametre

  • fd I2C ana arabirimi için dosya tanımlayıcısı.

  • address İşlemin hedefi olan alt I2C cihazının adresi .

  • data Hedef cihaza iletecek veriler. Uzunluk 0 ise bu değer NULL olabilir.

  • length İletilecek verilerin boyutu. Bu değer 0 olabilir.

Hata

Hatayla karşılaşılırsa ve hata değerine ayarlanırsa errno -1 döndürür.

  • EBUSY: Arabirim meşgul veya I2C hattı düşük tutuluyor.

  • ENXIO: İşlem, alt cihazdan bir ACK almadı.

  • ETIMEDOUT: İşlem tamamlanmadan önce zaman aşımına uğradı; zaman aşımı süresini ayarlamak için I2CMaster_SetTimeout işlevini çağırabilirsiniz.

Diğer errno hatalar da belirtilebilir; bu tür hatalar belirlenimci değildir ve sistem güncelleştirmeleri aracılığıyla aynı davranış korunmayabilir.

Dönüş değeri

Başarıyla yazılan bayt sayısını veya hata için -1 sayısını döndürür; bu durumda errno hata değerine ayarlanır. 0 bayt yazma dahil olmak üzere kısmi yazma başarılı olarak kabul edilir.

Uygulama bildirimi gereksinimleri

I2c arabirimine erişmek için uygulamanızın bunu uygulama bildiriminin I2cMaster alanında tanımlaması gerekir.