Partage via


I2CMaster_Write, fonction

En-tête : #include <applibs/i2c.h>

Effectue une opération d’écriture sur une interface de master I2C. Cette fonction fournit les mêmes fonctionnalités que la fonction POSIX write(), sauf qu’elle spécifie l’adresse de l’appareil I2C subordonné qui est la cible de l’opération.

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

Paramètres

  • fdDescripteur de fichier pour l’interface de master I2C.

  • addressAdresse de l’appareil I2C subordonné qui est la cible de l’opération.

  • data Données à transmettre à l’appareil cible. Cette valeur peut être NULL si la longueur est égale à 0.

  • length Taille des données à transmettre. Cette valeur peut être 0.

Erreurs

Retourne -1 si une erreur est rencontrée et définit errno sur la valeur d’erreur.

  • EBUSY : l’interface est occupée ou la ligne I2C est maintenue bas.

  • ENXIO : l’opération n’a pas reçu d’ACK de l’appareil subordonné.

  • ETIMEDOUT : l’opération a expiré avant de se terminer; vous pouvez appeler la fonction I2CMaster_SetTimeout pour ajuster la durée du délai d’expiration.

Toutes les autres errno peuvent également être spécifiées ; ces erreurs ne sont pas déterministes et le même comportement peut ne pas être conservé par le biais des mises à jour système.

Valeur de retour

Retourne le nombre d’octets correctement écrits, ou -1 en cas d’échec, auquel cas errno est défini sur la valeur d’erreur. Une écriture partielle, y compris une écriture de 0 octet, est considérée comme un succès.

Exigences du manifeste d’application

Pour accéder à une interface I2c, votre application doit l’identifier dans le champ I2cMaster du manifeste de l’application.