Доброго времени суток.
Есть у меня необходимость работать сразу с двумя устройствами, подключенными по i2c.
С i2c работаю примерно так:
if ((i2c = open("/dev/i2c-3", O_RDWR)) < 0)
{
qDebug() << "i2c open error";
}
else
{
qDebug() << "i2c open ok";
if ((ioc = ioctl(i2c, I2C_SLAVE, 0x15)) < 0)
{
qDebug() << "i2c set addr error";
}
else
{
//Пишем, читаем, починяем примусы.
}
}
}
Собственно как правильнее мне поступить - дергать все время ioctl и менять адрес или просто открыть мой /dev/i2c-3 одновременно несколько раз, как в коде ниже?
i2c_1 = open("/dev/i2c-3", O_RDWR);
ioc_1 = ioctl(i2c_1, I2C_SLAVE, 0x15);
i2c_2 = open("/dev/i2c-3", O_RDWR);
ioc_2 = ioctl(i2c_2, I2C_SLAVE, 0x16);