Función I2CMaster_Read
Encabezado: #include <applibs/i2c.h>
Realiza una operación de lectura en una interfaz maestra I2C. Esta función proporciona la misma funcionalidad que la función de lectura POSIX(2), excepto que especifica la dirección del dispositivo I2C subordinado que es el destino de la operación.
ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);
Parámetros
fd
Descriptor de archivo para la interfaz maestra I2C.address
La dirección del dispositivo I2C subordinado que es el origen de la operación de lectura.buffer
El búfer de salida que recibe datos del dispositivo subordinado. Este búfer debe contener suficiente espacio para recibirmaxLength
bytes. Esto puede ser NULL simaxLength
es 0.maxLength
El número máximo de bytes que se recibirán. El valor puede ser 0.
Errores
Devuelve -1 si se encuentra un error y se establece errno
en el valor de error.
EBUSY: la interfaz está ocupada o la línea de reloj I2C (SCL) se mantiene baja.
ENXIO: la operación no recibió un ACK del dispositivo subordinado.
ETIMEDOUT: se ha agotado el tiempo de finalización de la operación; puedes usar la función I2CMaster_SetTimeout para ajustar la duración del tiempo de espera.
También se pueden especificar otros errno
errores; estos errores no son deterministas y es posible que no se conserve el mismo comportamiento a través de las actualizaciones del sistema.
Valor devuelto
Devuelve el número de bytes leídos correctamente; o -1 en caso de error, en cuyo caso errno
se establecerá en el valor de error. Una operación de lectura parcial, incluida una lectura de 0 bytes, se considera correcta.
Requisitos del manifiesto de la aplicación
Para acceder a una interfaz I2c, la aplicación debe identificarla en el campo I2cMaster del manifiesto de la aplicación.