Partage via


I2CMaster_Read, fonction

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

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

ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);

Paramètres

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

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

  • buffer Mémoire tampon de sortie qui reçoit des données de l’appareil subordonné. Cette mémoire tampon doit contenir suffisamment d’espace pour recevoir des maxLength octets. Cette valeur peut être NULL si maxLength a la valeur 0.

  • maxLength Nombre maximal d’octets à recevoir. La 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 d’horloge I2C (SCL) est maintenue basse.

  • 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 utiliser 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 lus avec succès ; ou -1 en cas d’échec, auquel cas errno est défini sur la valeur d’erreur. Une opération de lecture partielle, y compris une lecture de 0 octet, est considérée comme une réussite.

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.