Um aber mit der SW weiterzukommen, habe aus einem Beispiel-Code aus dem Netz ein Stück zusammengeschnitten, mit dem ich auf meinem Desktop-PC vermutlich das EEPROM meines Monitors auslesen kann. Wegen der Übersichtlichkeit sind die Adressen hardcoded und ein wirkliches Schreiben habe ich nicht probiert, um den Rechner nicht zu gefärden.
Vielleicht hilftsCode:#include <linux/i2c-dev.h> #include <stdio.h> #include <fcntl.h> #define NUMBYTES 20 int main() { int file; char filename[] = "/dev/i2c-0"; char buffer[20]; int i; file = open(filename, O_RDWR); if (file < 0) { perror("i2c-test open: "); return -1; } /* You can do plain I2C transactions by using read(2) and write(2) calls. * You do not need to pass the address byte; instead, set it through * ioctl I2C_SLAVE before you try to access the device. */ if (ioctl(file, I2C_SLAVE, 0x50) < 0) { perror("i2c-test set slave address: "); return -1; } buffer[0] = 0; // set read pointer in I2C slave if(write(file, buffer, 1) != 1) { perror("i2c-test write: "); return -1; } if (read(file, buffer, NUMBYTES) != NUMBYTES) { perror("i2c-test read: "); return -1; } else { for(i = 0; i < NUMBYTES; i++) { printf("%02x ", (unsigned char)buffer[i]); } printf("\nok\n"); } return 0; }
MfG Klebwax







Zitieren

Lesezeichen