问题描述
我有一个带有运动传感器的树莓派。当我运行ioctl()调用时,无论是否连接了运动传感器,它始终返回0?
ioctl(fd,I2C_SLAVE,_DEVICE_Addr)
解决方法
这是预期的行为。 I2C_SLAVE
ioctl不会检查设备是否存在。它根本不通过I2C总线进行通信。它只是进行一些检查以了解该地址是否已被使用,然后保存客户端地址以供后续调用。
不幸的是,这没有记录,但是您可以在代码https://elixir.bootlin.com/linux/v5.8/source/drivers/i2c/i2c-dev.c#L401
中阅读它。