Функция I2CMaster_Read
Заголовок: #include <applibs/i2c.h>
Выполняет операцию чтения в интерфейсе I2C master. Эта функция предоставляет те же функции, что и функция чтения POSIX(2), за исключением того, что она указывает адрес подчиненного устройства I2C, являющегося целевым объектом операции.
ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);
Параметры
fd
Дескриптор файла для интерфейса I2C master.address
Адрес подчиненного устройства I2C, которое является источником для операции чтения.buffer
Выходной буфер, получающий данные от подчиненного устройства. Этот буфер должен содержать достаточно места для полученияmaxLength
байтов. Это значение может иметь значение NULL, еслиmaxLength
имеет значение 0.maxLength
Максимальное количество байтов для получения. Значение может быть равно 0.
Ошибки
Возвращает значение -1 при обнаружении ошибки и задает errno
значение ошибки.
EBUSY: интерфейс занят или линия часов I2C (SCL) находится на низком уровне.
ENXIO: операция не получила ACK от подчиненного устройства.
ETIMEDOUT: время ожидания операции истекло до завершения; Для настройки времени ожидания можно использовать функцию I2CMaster_SetTimeout .
Можно также указать любой другой errno
. Такие ошибки не являются детерминированными, и такое же поведение может не сохраняться при обновлении системы.
Возвращаемое значение
Возвращает число успешно прочитанных байтов; или -1 для сбоя, в этом случае errno
будет задано значение ошибки. Операция частичного чтения, включая чтение 0 байтов, считается успешной.
Требования к манифесту приложения
Чтобы получить доступ к интерфейсу I2c, приложение должно определить его в поле I2cMaster манифеста приложения.