який найпростіший спосіб налаштувати послідовний порт в Linux?


13

У командному рядку Windows для налаштування послідовного порту я можу просто використовувати:

mode com1: 9600,n,8,1

або прочитати конфігурацію:

mode com1:

Чи є подібні команди в Linux? Який був би найпростіший спосіб знайти і налаштувати послідовний порт в Linux?


Зазвичай ви можете редагувати його прямо в додатках, якими ви користуєтесь для доступу до серіалу, наприклад screen /dev/ttyS0 <baud-rate>(за замовчуванням було б 9600 незалежно від налаштувань на загальну систему, навіть не впевнені, що такі існують)
phk

Мені потрібно налаштувати його на використання POS-принтера.
Хрвойо Т

Гаразд, у такому випадку спробуйте sttyкоманди, зазначені на: wiki.openwrt.org/doc/recipes/serialbaudratespeed
phk

Відповіді:


27

Ви можете використовувати sttyкоманду для встановлення таких параметрів.

Це покаже всі налаштування на першому послідовному порту (замініть ttyS0на, ttyUSB0якщо ви використовуєте послідовний порт USB):

stty -F /dev/ttyS0 -a

Це встановить швидкість передачі даних на 9600, 8 біт, 1 стоп-біт, без паритету:

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

Одне, що зазвичай бентежить людей, - це те, що більшість послідовних драйверів скидає налаштування до значень за замовчуванням після закриття пристрою (тобто жоден процес більше не відкриває пристрій). Отже, наведена вище sttyкоманда встановить налаштування, тоді, коли це буде виконано, драйвер скидає їх знову. Якщо ви спочатку відкриєте пристрій для свого програмного забезпечення для POS, а потім виконаєте sttyналаштування, вони повинні триматися, поки ваше ПО не закриє пристрій знову (наприклад, після виходу).

Я б подумав, що програмне забезпечення POS повинно мати певний спосіб налаштування цих параметрів самостійно. Якщо ви пишете власне програмне забезпечення для приводу принтера, спочатку переконайтесь у пристрої та виконайте sttyкоманду.

Можливо, вам також доведеться пограти з іншими налаштуваннями, наприклад, opostозначає, що буде виконуватися післяобробка. Якщо opostі onlcrобидва встановлені, onlcrзаклик призведе до додавання додаткового повернення каретки (0xd), коли виводиться байт нового рядка (0xa), як правило, для запобігання друку сходових кліток, таких як

This is a line
              This is the next line

Це може бути або не бути тим, що ви хочете. Якщо ви хочете сирої один-до-одного вихід на принтер включити opostвимкнути (додати -opostдо sttyпараметрами).

Рукостискання (контроль потоку) також контролюється stty, не знаючи більше про принтер, я не можу сказати, чи потрібно вам щось встановлювати.

Перегляньте сторінку сторінки, sttyщоб отримати більше інформації.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.