apa cara termudah untuk mengkonfigurasi port serial di Linux?

13

Pada command prompt Windows untuk mengkonfigurasi port serial, saya dapat menggunakan:

mode com1: 9600,n,8,1

atau untuk membaca konfigurasi:

mode com1:

Apakah ada perintah serupa di Linux? Apa cara termudah untuk menemukan dan mengkonfigurasi port serial di Linux?

Hrvoje T
sumber
Biasanya Anda dapat mengeditnya langsung di aplikasi yang Anda gunakan untuk mengakses serial seperti, misalnya screen /dev/ttyS0 <baud-rate>(defaultnya adalah 9600 tidak peduli apa pun pengaturan seluruh sistem, bahkan tidak yakin ada)
phk
Saya perlu mengkonfigurasinya untuk menggunakan printer POS.
Hrvoje T
OK, dalam hal ini coba sttyperintah yang disebutkan di: wiki.openwrt.org/doc/recipes/serialbaudratespeed
phk

Jawaban:

27

Anda dapat menggunakan sttyperintah untuk mengatur parameter tersebut.

Ini akan menampilkan semua pengaturan pada port serial pertama (ganti ttyS0dengan ttyUSB0jika menggunakan port serial USB):

stty -F /dev/ttyS0 -a

Ini akan mengatur baud rate ke 9600, 8 bit, 1 stop bit, tanpa paritas:

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

Satu hal yang biasanya membingungkan orang adalah bahwa sebagian besar driver serial akan mengatur ulang pengaturan ke default setelah perangkat ditutup (yaitu tidak ada proses membuka perangkat lagi). Jadi sttyperintah di atas akan mengatur pengaturan, maka ketika selesai driver mengatur ulang mereka lagi. Jika Anda pertama kali memiliki perangkat lunak POS Anda membuka perangkat dan kemudian melakukan sttypengaturan, mereka harus bertahan sampai perangkat lunak POS Anda menutup perangkat lagi (misalnya saat keluar).

Saya akan berpikir bahwa perangkat lunak POS harus memiliki cara mengkonfigurasi pengaturan ini sendiri. Jika Anda menulis perangkat lunak Anda sendiri untuk menggerakkan printer, pastikan Anda membuka perangkat terlebih dahulu, dan kemudian melakukan sttyperintah.

Anda mungkin juga perlu bermain-main dengan pengaturan lain, mis. opostBerarti bahwa postprocessing keluaran akan dilakukan. Jika opostdan onlcrkeduanya diatur, onlcrakan menyebabkan carriage return tambahan (0xd) ditambahkan ketika byte baris baru (0xa) dihasilkan, biasanya untuk mencegah pencetakan tangga seperti

This is a line
              This is the next line

Ini mungkin atau mungkin bukan yang Anda inginkan. Jika Anda ingin output satu-ke-satu yang mentah ke printer matikan opost(tambahkan -opostke sttyparameter).

Jabat tangan (kontrol aliran) juga dikontrol stty, tanpa mengetahui lebih banyak tentang printer, saya tidak tahu apakah Anda perlu mengatur apa pun.

Periksa halaman sttymanual untuk info lebih lanjut.

Wurtel
sumber