Udostępnij za pośrednictwem


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.