I2CMaster_Read 函数
标头: #include <applibs/i2c.h>
对 I2C 主接口执行读取操作。 此函数提供的功能与 POSIX 读取 (2) 函数相同,只是它指定作为操作目标的从属 I2C 设备的地址。
ssize_t I2CMaster_Read(int fd, I2C_DeviceAddress address, uint8_t *buffer, size_t maxLength);
参数
fd
I2C 主接口的文件描述符。address
作为读取操作源的从属 I2C 设备的 地址 。buffer
从从属设备接收数据的输出缓冲区。 此缓冲区必须包含足够的空间才能接收maxLength
字节。 如果maxLength
为 0,则可以为 NULL。maxLength
要接收的最大字节数。 该值可以为 0。
错误
如果遇到错误并设置为 errno
错误值,则返回 -1。
EBUSY:接口繁忙或 I2C 时钟线路 (SCL) 处于低位。
ENXIO:操作未从从属设备收到 ACK。
ETIMEDOUT:操作在完成前超时;可以使用 I2CMaster_SetTimeout 函数调整超时持续时间。
还可以指定任何其他 errno
错误;此类错误不是确定性的,并且可能不会通过系统更新保留相同的行为。
返回值
返回成功读取的字节数;或 -1 表示失败,在这种情况下 errno
,将设置为错误值。 部分读取操作(包括读取 0 字节)被视为成功。
应用程序清单要求
若要访问 I2c 接口,应用程序必须在 应用程序清单的 I2cMaster 字段中标识它。