Mam spory problem z odczytem danych z portu szeregowego. Mam wbudowany port (com) na płycie głównej i Debian wykrywa go jako ttyS0.
Chciałem przechwytywać dane swoim programem poprzez polecenie fread po uprzednim skonfigurowaniu portu programem stty. Na początku wszystko ładnie działało. Ustawiłem sobie, żeby program fread odczytywał po 128 bajtów, przez co zawsze pobierał mi całą ramkę wysyłaną z drugiego komputera pod warunkiem, że była mniejsza lub równa 128 bajtów, ale niezależnie od jej zawartości. Po kilku godzinach testów Debian przestał wysyłać zwykłe ramki i funkcja fread zwracała pustą wartość. Od tamtej pory jedyną możliwością żeby odczytać coś poprzez fread jest wysłanie do Linuksa ramki zakończonej bajtem 0D. Przykład:
Wysyłam z drugiego kompa 3 ramki pod rząd:
Kod: Zaznacz cały
1. E4 A1 A2
2. 3D EE D4
3. 00 0A 0D
Kod: Zaznacz cały
E4 A1 A2 3D EE D4 00 0A 0D
Podejrzewam, że jest to kwestia jakiś ustawień stty, ale nie mogę sam dojść gdzie ustawić żeby przesyłał dane z portu nie czekając na znak CR/LF. Dziwne jest też to, że na początku tego nie było. Problem pojawił się po jakimś czasie i nie wydaje mi się żebym coś zmieniał. Reset systemu nie pomaga, proszę o pomoc, bo docelowo urządzenie, które ma pracować z Debianem nie wysyła na końcu ani CR ani LF i Linux nie pozwala mi to dokończyć pracy.
System to Debian 6.0.3
Płyta ASUS P4BP-MX
Procesor PentiumIV 2.4GHz
Pozdrawiam.