Hallo liebes Forum, ich besitze ein Fox Board LX 832 und möchte es nun mit I2C verwenden. Leider bekomme ich beim Aufruf der Anwendung immer folgenden Fehler : "I2C: open error on /dev/i2c"! Naja, es ist ja auch ie Fehlermeldung vom C-code, aber wieso? Wie kann ich bei einem Linux System überprüfen, ob die richtigen Treiber ( in diesem Fall für I2C) geladen sind? Oder woran kann es sonst liegen? Zur Info, die Anwendung liegt im Verzeichnis /mnt/flash/root/ und die vermutlichen Treiber oder Devices unter dev. Vielleicht könnt ihr hier weiter helfen. Vielen Dank im Voraus. Der C-Quellcode für die Anwendung ist folgender: #include "stdio.h" #include "stdlib.h" #include "unistd.h" #include "sys/ioctl.h" #include "fcntl.h" #include "time.h" #include "string.h" #include "asm/etraxi2c.h" // Global variables int fd_i2c; int I2C_Open(void) { fd_i2c = open("/dev/i2c", O_RDWR); if (fd_i2c <= 0) { printf("I2C: open error on /dev/i2c\n"); return(-1); } return(0); } void I2C_Close(void) { close(fd_i2c); } int main(int argc, char **argv) { int retcode; retcode = I2C_Open(); if (retcode != 0) { exit(1); } I2C_LCD i2clcd; i2clcd.slave=64; i2clcd.x = 1; i2clcd.y = 1; sprintf(i2clcd.text, "Hello World"); ioctl(fd_i2c, _IO(ETRAXI2C_IOCTYPE, I2C_LCDINIT), &i2clcd); ioctl(fd_i2c, _IO(ETRAXI2C_IOCTYPE, I2C_LCDPRINT), &i2clcd); i2clcd.y = 2; i2clcd.x = 3; ioctl(fd_i2c, _IO(ETRAXI2C_IOCTYPE, I2C_LCDPRINT), &i2clcd); I2C_Close(); return(0); }; lg
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.