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.