Funkcja I2CMaster_Write
Nagłówek: #include <applibs/i2c.h>
Wykonuje operację zapisu w interfejsie głównym I2C. Ta funkcja zapewnia taką samą funkcjonalność jak funkcja POSIX write(), z wyjątkiem tego, że określa adres urządzenia podrzędnego I2C, który jest obiektem docelowym operacji.
ssize_t I2CMaster_Write(int fd, I2C_DeviceAddress address, const uint8_t *data, size_t length);
Parametry
fd
Deskryptor plików interfejsu głównego I2C.address
Adres podrzędnego urządzenia I2C, które jest celem operacji.data
Dane przesyłane do urządzenia docelowego. Ta wartość może mieć wartość NULL, jeśli długość wynosi 0.length
Rozmiar danych do przesłania. Ta wartość może wynosić 0.
Błędy
Zwraca wartość -1 w przypadku napotkania błędu i ustawia errno
wartość błędu.
EBUSY: interfejs jest zajęty lub linia I2C jest utrzymywana na niskim poziomie.
ENXIO: operacja nie otrzymała ACK z urządzenia podrzędnego.
ETIMEDOUT: przekroczona została przekroczona limit czasu operacji przed ukończeniem operacji; możesz wywołać funkcję I2CMaster_SetTimeout , aby dostosować czas trwania limitu czasu.
Mogą być również określone inne errno
błędy; takie błędy nie są deterministyczne i to samo zachowanie może nie być zachowane za pośrednictwem aktualizacji systemu.
Zwracana wartość
Zwraca liczbę bajtów pomyślnie napisanych lub -1 dla niepowodzenia, w którym to przypadku errno
zostanie ustawiona wartość błędu. Częściowy zapis, w tym zapis 0 bajtów, jest uważany za sukces.
Wymagania dotyczące manifestu aplikacji
Aby uzyskać dostęp do interfejsu I2c, aplikacja musi zidentyfikować go w polu I2cMaster manifestu aplikacji.