![i2c linux 驱动程序中的 I2C_SLAVE ioctl](https://linux22.com/image/1309197/i2c%20linux%20%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E4%B8%AD%E7%9A%84%20I2C_SLAVE%20ioctl.png)
我应该为 i2c 编写一个简单的写入和读取程序,但问题是我目前没有设备来测试它,所以我需要我的代码是完美的。
我对 I2C_SLAVE ioctl 的功能感到困惑。据我所知,此 ioctl 用于设置从设备地址。
但是,我们在使用 ioctl I2C_RDWR 通过结构 i2c_msg 中的 Addr 执行读/写时再次传递从属地址。在 Linux 文档中提到,使用 I2C_RDWR 设置的地址优先于 I2C_SLAVE 设置的地址。
那么,I2C_SLAVE 命令有什么作用?它是必需的吗?
答案1
I2C_SLAVE 将改变从属地址,因此可能需要在写入特定地址或从特定地址读取之前使用此命令。