Hallo Zusammen,
ich habe aus einem Buch ein Programm abgetippt, mit dem ich eine
USB-Schnittstelle ansteuern möchte. Soweit läuft das Programm zwar ohne
Fehler, jedoch ohne erkennbare Schreib-/Leseaktivität auf die
Schnittstelle.
Der Programmer von AVR zumindest zeigt dahingehend keine Aktivität.
Nach meiner Einschätzung müsste der Fehler in untem angegebenem Code zu
finden sein, er verschließt sich mir jedoch.
Die TERM_DEVICE habe ich mit /dev/ttyS0 bis S9 sowie mit /devv/ttyUSB0
bis USB7 ausprobiert, jedoch ohne Erfolg.
1 | # define TERM_DEVICE "/dev/ttyS4" /* COM1 */
|
2 | # define TERM_SPEED B9600 /* Baud - Bit pro Sekunde */
|
3 |
|
4 | int main()
|
5 | {
|
6 | int fd, old_flags; /* */
|
7 | ssize_t length; /* Datentyp des Rückgabewertes von sizeof */
|
8 | char buffer[16];
|
9 | struct termios term_attr;
|
10 | fd_set input_fdset;
|
11 |
|
12 | if ((fd = open(TERM_DEVICE, O_RDWR)) == -1)
|
13 | {
|
14 | perror("terminal: Can't open device "TERM_DEVICE);
|
15 | return(1);
|
16 | }
|
17 |
|
18 | /* ########## RS232 konfigurieren ########## */
|
19 | if (tcgetattr(fd, &term_attr) != 0)
|
20 | {
|
21 | perror("terminal: tcgetattr() failed");
|
22 | return(1);
|
23 | }
|
24 |
|
25 | term_attr.c_cflag = TERM_SPEED | CS8 | CRTSCTS | CLOCAL | CREAD; /* */
|
26 | term_attr.c_iflag = 0;
|
27 | term_attr.c_oflag = OPOST | ONLCR;
|
28 | term_attr.c_lflag = 0;
|
29 |
|
30 | if (tcsetattr(fd, TCSAFLUSH, &term_attr) != 0)
|
31 | perror("terminal: tcsetattr() failed");
|
32 |
|
33 | /* ########## Std.-Eingabe anpassen ########## */
|
34 | if (tcgetattr(STDIN_FILENO, &term_attr) != 0)
|
35 | {
|
36 | perror("terminal: tcgetattr() failed");
|
37 | return(1);
|
38 | }
|
39 |
|
40 | /* ########## Alte Einstellungen sichern ########## */
|
41 | old_flags = term_attr.c_lflag;
|
42 | term_attr.c_lflag &= ~(ICANON | ECHO); /* Canonical-Mode aus */
|
43 |
|
44 | if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &term_attr) != 0)
|
45 | perror("terminal: tcsetattr() failed");
|
Als User gehöre ich folgenden Groups an:
adm uucp dialout cdrom plugdev lpadmin admin sambashare
Mit lsusb finde ich den zum Programmer gehörenden Eintrag:
Bus 004 Device 002: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x
Composite Device
Hat evtl. jemand eine grundsätzlichen Lösungsansatz oder vielleicht
einen Tip, wo ich den Fehler finden kann?
Vielen Dank im voraus.
Micha
P.S.: Ich habe im Forum nach ähnlichen Themen ausschau gehalten, ohne
Erfolg. Sollte mir da etwas entgangen sein entschuldigt bitte diesen
Eintrag.