Бөлісу құралы:


Функция 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 манифеста приложения.