jaki jest najłatwiejszy sposób skonfigurowania portu szeregowego w systemie Linux?

13

W wierszu polecenia systemu Windows, aby skonfigurować port szeregowy, mogę w prosty sposób użyć:

mode com1: 9600,n,8,1

lub przeczytaj konfigurację:

mode com1:

Czy istnieją podobne polecenia w systemie Linux? Jaki byłby najłatwiejszy sposób na znalezienie i skonfigurowanie portu szeregowego w systemie Linux?

Hrvoje T.
źródło
Zwykle można go edytować bezpośrednio w aplikacjach używanych do uzyskiwania dostępu do numeru seryjnego, np. screen /dev/ttyS0 <baud-rate>(Domyślnie byłoby to 9600 bez względu na ustawienia systemowe, nawet nie jestem pewien, czy takie istnieją)
phk
Muszę go skonfigurować, aby używał drukarki POS.
Hrvoje T
OK, w takim przypadku wypróbuj sttypolecenia wymienione na stronie: wiki.openwrt.org/doc/recipes/serialbaudratespeed
phk

Odpowiedzi:

27

Możesz użyć sttypolecenia, aby ustawić takie parametry.

Spowoduje to wyświetlenie wszystkich ustawień pierwszego portu szeregowego (zastąp ttyS0je, ttyUSB0jeśli używasz portu szeregowego USB):

stty -F /dev/ttyS0 -a

Spowoduje to ustawienie szybkości transmisji na 9600, 8 bitów, 1 bit stopu, brak parzystości:

stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb

Jedną z rzeczy, która ogólnie myli ludzi, jest to, że większość sterowników szeregowych zresetuje ustawienia do wartości domyślnych po zamknięciu urządzenia (tj. W żadnym procesie urządzenie nie jest już otwarte). Tak więc powyższe sttypolecenie spowoduje ustawienie ustawień, a następnie, gdy to zrobione, sterownik zresetuje je ponownie. Jeśli najpierw masz otwarte oprogramowanie POS, a następnie dokonujesz sttyustawień, powinny one pozostać do momentu, aż oprogramowanie POS ponownie zamknie urządzenie (np. Po wyjściu).

Myślałem, że oprogramowanie POS powinno mieć możliwość samodzielnego skonfigurowania tych ustawień. Jeśli piszesz własne oprogramowanie do sterowania drukarką, najpierw otwórz urządzenie, a następnie wykonaj sttypolecenie.

Być może trzeba będzie się pobawić innymi ustawieniami, np. opostOznacza, że ​​zostanie przetworzone przetwarzanie wyjściowe. Jeśli oposti onlcroba są ustawione, onlcrspowoduje to dodanie dodatkowego znaku powrotu karetki (0xd), gdy generowany jest bajt nowej linii (0xa), zwykle w celu zapobiegania drukowaniu schodów, takim jak

This is a line
              This is the next line

To może być lub nie być to, czego chcesz. Jeśli chcesz surowego wyjścia jeden do jednego do drukarki, opostwyłącz (dodaj -opostdo sttyparametrów).

Uścisk dłoni (kontrola przepływu) jest również kontrolowany za pomocą stty, nie wiedząc więcej o drukarce. Nie wiem, czy trzeba coś ustawić.

sttyWięcej informacji na stronie podręcznika.

wurtel
źródło