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
fd
Descripteur de fichier pour l’interface de master I2C.address
Adresse 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 desmaxLength
octets. Cette valeur peut être NULL simaxLength
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.