I2CMaster_Write-Funktion
Header: #include <applibs/i2c.h>
Führt einen Schreibvorgang für eine I2C-master-Schnittstelle aus. Diese Funktion bietet die gleiche Funktionalität wie die POSIX write()-Funktion, mit der Ausnahme, dass sie die Adresse des untergeordneten I2C-Geräts angibt, das das Ziel des Vorgangs ist.
ssize_t I2CMaster_Write(int fd, I2C_DeviceAddress address, const uint8_t *data, size_t length);
Parameter
fd
Der Dateideskriptor für die I2C-master-Schnittstelle.address
Die Adresse des untergeordneten I2C-Geräts, das das Ziel für den Vorgang ist.data
Die Daten, die an das Zielgerät übertragen werden sollen. Dieser Wert kann NULL sein, wenn die Länge 0 ist.length
Die Größe der zu übertragenden Daten. Dieser Wert kann 0 sein.
Fehler
Gibt -1 zurück, wenn ein Fehler auftritt, und legt auf den Fehlerwert fest errno
.
EBUSY: Die Schnittstelle ist ausgelastet, oder die I2C-Leitung wird niedrig gehalten.
ENXIO: Der Vorgang hat keine ACK vom untergeordneten Gerät empfangen.
ETIMEDOUT: Zeitüberschreitung des Vorgangs vor Abschluss; Sie können die I2CMaster_SetTimeout-Funktion aufrufen, um die Timeoutdauer anzupassen.
Auch andere errno
Fehler können angegeben werden. Solche Fehler sind nicht deterministisch, und dasselbe Verhalten wird möglicherweise nicht durch Systemupdates beibehalten.
Rückgabewert
Gibt die Anzahl der erfolgreich geschriebenen Bytes oder -1 für fehler zurück. In diesem Fall errno
wird auf den Fehlerwert festgelegt. Ein partieller Schreibvorgang, einschließlich eines Schreibvorgangs von 0 Bytes, gilt als erfolgreich.
Anforderungen an das Anwendungsmanifest
Um auf eine I2c-Schnittstelle zugreifen zu können, muss Ihre Anwendung diese im Feld I2cMaster des Anwendungsmanifests identifizieren.