Linux 使用i2c读取Edid-“;ioctl";对;改为;

Linux 使用i2c读取Edid-“;ioctl";对;改为;,linux,ubuntu,edid,Linux,Ubuntu,Edid,各位 我正在研究读取edid代码的各种实现 在一个实现中,我看到以下内容: err = ioctl(fd, I2C_SLAVE, 0x50); if (err == 0) { // ok to read. for(int i=0;i<128;i++) { buf[i] = i2c_smbus_read_byte_data(fd); // use ioctl to read 1 byte at a time } } 第一个实现来自,第二个

各位

我正在研究读取edid代码的各种实现

在一个实现中,我看到以下内容:

 err = ioctl(fd, I2C_SLAVE, 0x50);
 if (err == 0) {
     // ok to read.
     for(int i=0;i<128;i++) {
        buf[i] = i2c_smbus_read_byte_data(fd); // use ioctl to read 1 byte at a time
     }
 }
第一个实现来自,第二个实现来自libXcm实现

我使用了第一个实现。我想知道第二次实施是否可以接受

提前感谢您的帮助

问候,

彼得

你发现了吗?
 err = ioctl(fd, I2C_SLAVE, 0x50);
 if (err == 0) {
     usleep(TIMEOUT); // sleep for a brief interval
     write(fd, &command, 1); // here, command[0] is 0
     usleep(TIMEOUT); // sleep for a brief interval
     read(fd, buf, 128);
 }