I2CMaster_Write 函数

标头: #include <applibs/i2c.h>

在 I2C 主接口上执行写入操作。 此函数提供与 POSIX write () 函数相同的功能,只不过它指定作为操作目标的从属 I2C 设备的地址。

ssize_t I2CMaster_Write(int fd, I2C_DeviceAddress address, const uint8_t *data, size_t length);

参数

  • fd I2C 主接口的文件描述符。

  • address 作为操作目标的从属 I2C 设备的 地址

  • data 要传输到目标设备的数据。 如果长度为 0,则此值可以为 NULL。

  • length 要传输的数据的大小。 此值可以为 0。

错误

如果遇到错误并设置为 errno 错误值,则返回 -1。

  • EBUSY:接口繁忙或 I2C 线路处于低位。

  • ENXIO:操作未从从属设备收到 ACK。

  • ETIMEDOUT:操作在完成前超时;可以调用 I2CMaster_SetTimeout 函数来调整超时持续时间。

还可以指定任何其他 errno 错误;此类错误不是确定性的,并且可能不会通过系统更新保留相同的行为。

返回值

返回成功写入的字节数,如果失败,则返回 -1,在这种情况下 errno ,将设置为错误值。 部分写入(包括 0 个字节的写入)被视为成功。

应用程序清单要求

若要访问 I2c 接口,应用程序必须在 应用程序清单的 I2cMaster 字段中标识它。