Das erfolgt in c++ mit termios.
Wenn ich das Modul über einen USB-Seriell-Wandler an meinen Rechner anschließe, klappt das Auslesen problemlos.
Wenn ich das Modul direkt an eine UART des Beaglebone Black (z.B. /dev/ttyO2 oder /dev/ttyO4) anschließe, werden zwar die Kommandos an das Modul gesendet, aber in meinem Tool sehe ich nur "Datenmüll" statt der Antwort des Moduls.
Mit minicom wird die Antwort des Moduls korrekt angezeigt.
Hat jemand eine Idee woran es liegen könnte, dass das Lesen beim BBB nicht funktioniert?
Konfiguartion der UART:
Code: Alles auswählen
struct termios DevSettings;
memset (&DevSettings, 0, sizeof(DevSettings));
cfsetispeed (&DevSettings, B4800);
cfsetospeed (&DevSettings, B4800);
DevSettings.c_oflag &= ~OPOST; // raw
DevSettings.c_cflag |= (CLOCAL | CREAD); // auch lesen möglich
DevSettings.c_cflag |= PARENB; // parity
DevSettings.c_cflag &= ~PARODD; // even parity
DevSettings.c_cflag &= ~CSTOPB; // 1 stopbit
DevSettings.c_cflag &= ~CSIZE;
DevSettings.c_cflag |= CS8; // select 8 databits
/* wait 500ms for data */
DevSettings.c_cc[VMIN] = 0;
DevSettings.c_cc[VTIME] = 2;
Code: Alles auswählen
n = read (DevHandle, RxBuffer, CFS20WUE__DATA_BUFFER_SIZE);
qgirl