วิธีที่ง่ายที่สุดในการกำหนดค่าพอร์ตอนุกรมบน Linux คืออะไร


13

ในพรอมต์คำสั่ง Windows เพื่อกำหนดค่าพอร์ตอนุกรมฉันสามารถใช้งานได้ง่าย:

mode com1: 9600,n,8,1

หรืออ่านการกำหนดค่า:

mode com1:

มีคำสั่งที่คล้ายกันใน Linux หรือไม่ อะไรจะเป็นวิธีที่ง่ายที่สุดในการค้นหาและกำหนดค่าพอร์ตอนุกรมใน Linux


ปกติคุณสามารถแก้ไขมันขวาในการใช้งานที่คุณใช้ในการเข้าถึงอนุกรมเหมือนเช่นscreen /dev/ttyS0 <baud-rate>(ค่าเริ่มต้นจะเป็น 9600 ไม่ว่าสิ่งที่การตั้งค่าทั้งระบบไม่ได้อยู่แน่ใจดังกล่าว)
phk

ฉันต้องกำหนดค่าให้ใช้เครื่องพิมพ์ POS
Hrvoje T

ตกลงในกรณีนั้นให้ลองใช้sttyคำสั่งที่กล่าวถึงที่: wiki.openwrt.org/doc/recipes/serialbaudratespeed
phk

คำตอบ:


27

คุณสามารถใช้sttyคำสั่งเพื่อตั้งค่าพารามิเตอร์ดังกล่าว

นี่จะแสดงการตั้งค่าทั้งหมดในพอร์ตอนุกรมแรก (แทนที่ttyS0ด้วยttyUSB0หากใช้พอร์ตอนุกรม USB):

stty -F /dev/ttyS0 -a

สิ่งนี้จะตั้งค่าอัตรา baud เป็น 9600, 8 bits, 1 stop bit, no parity:

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

สิ่งหนึ่งที่คนส่วนใหญ่สับสนคือไดรเวอร์อนุกรมส่วนใหญ่จะรีเซ็ตการตั้งค่าเป็นค่าเริ่มต้นเมื่ออุปกรณ์ถูกปิด (เช่นไม่มีกระบวนการใดที่อุปกรณ์จะเปิดอีกต่อไป) ดังนั้นsttyคำสั่งดังกล่าวจะตั้งค่าจากนั้นเมื่อเสร็จแล้วไดรเวอร์จะรีเซ็ตพวกเขาอีกครั้ง หากคุณให้ซอฟต์แวร์ POS เปิดอุปกรณ์จากนั้นทำการsttyตั้งค่าพวกเขาควรจะวนไปมาจนกว่าซอฟต์แวร์ POS ของคุณจะปิดอุปกรณ์อีกครั้ง (เช่นเมื่อออกจาก)

ฉันคิดว่าซอฟต์แวร์ POS ควรมีวิธีการกำหนดการตั้งค่าเหล่านี้ด้วยตัวเอง หากคุณกำลังเขียนซอฟต์แวร์ของคุณเองเพื่อขับเครื่องพิมพ์ตรวจสอบให้แน่ใจว่าคุณเปิดอุปกรณ์ก่อนแล้วจึงดำเนินการsttyคำสั่ง

คุณอาจต้องเล่นกับการตั้งค่าอื่น ๆ เช่นopostหมายความว่าการประมวลผลเอาต์พุตจะถูกดำเนินการ หากopostและonlcrมีการตั้งค่าทั้งสองอย่างonlcrจะทำให้มีการเพิ่มการรับคืนพิเศษ (0xd) เมื่อมีการขึ้นบรรทัดใหม่ (0xa) ไบต์โดยทั่วไปเพื่อป้องกันการพิมพ์บันไดเช่น

This is a line
              This is the next line

นี่อาจเป็นหรือไม่ใช่สิ่งที่คุณต้องการ ถ้าคุณต้องการดิบแบบหนึ่งต่อหนึ่งการส่งออกไปยังเครื่องพิมพ์เปิดopostปิด (เพิ่ม-opostไปยังsttyพารามิเตอร์)

การจับมือ (ควบคุมการไหล) ก็ควบคุมได้sttyเช่นกันโดยไม่ต้องรู้เพิ่มเติมเกี่ยวกับเครื่องพิมพ์ฉันไม่สามารถบอกได้ว่าคุณต้องตั้งค่าอะไร

ตรวจสอบsttymanpage สำหรับข้อมูลเพิ่มเติมมากมาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.