¿Cuál es la forma más fácil de configurar el puerto serie en Linux?


13

En el símbolo del sistema de Windows para configurar un puerto serie, puedo usar simplemente:

mode com1: 9600,n,8,1

o para leer la configuración:

mode com1:

¿Hay comandos similares en Linux? ¿Cuál sería la forma más fácil de encontrar y configurar el puerto serie en Linux?


Normalmente, puede editarlo directamente en las aplicaciones que usa para acceder a la serie como, por ejemplo screen /dev/ttyS0 <baud-rate>(el valor predeterminado sería 9600 sin importar la configuración de todo el sistema, ni siquiera seguro de que exista)
phk

Necesito configurarlo para usar una impresora POS.
Hrvoje T

OK, en ese caso intente los sttycomandos mencionados en: wiki.openwrt.org/doc/recipes/serialbaudratespeed
phk

Respuestas:


27

Puede usar el sttycomando para establecer dichos parámetros.

Esto mostrará todas las configuraciones en el primer puerto serie (reemplace ttyS0con ttyUSB0un puerto serie USB):

stty -F /dev/ttyS0 -a

Esto establecerá la velocidad en baudios a 9600, 8 bits, 1 bit de parada, sin paridad:

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

Una cosa que generalmente confunde a las personas es que la mayoría de los controladores seriales restablecerán la configuración a los valores predeterminados una vez que se cierre el dispositivo (es decir, ningún proceso tiene el dispositivo abierto más). Entonces, el sttycomando anterior establecerá la configuración, luego, cuando esté hecho, el controlador la restablecerá nuevamente. Si primero hace que su software POS abra el dispositivo y luego realice la sttyconfiguración, deben quedarse hasta que su software POS cierre el dispositivo nuevamente (por ejemplo, al salir).

Pensé que el software POS debería tener alguna forma de configurar estos ajustes por sí solo. Si está escribiendo su propio software para controlar la impresora, asegúrese de abrir primero el dispositivo y luego ejecutar el sttycomando.

También es posible que deba jugar con otras configuraciones, por ejemplo, opostsignifica que se realizará el procesamiento posterior de salida. Si oposty onlcrson a la vez ajustado, el onlcrcausará un retorno de carro adicional (0xd) que se añade cuando un byte (0xa) de nueva línea de salida es, por lo general para evitar la escalera de impresión, tales como

This is a line
              This is the next line

Esto puede o no ser lo que quieres. Si desea una salida de uno a uno sin procesar a la impresora, opostdesactívela (agregue -oposta los sttyparámetros).

El control de manos (control de flujo) también se controla con stty, sin saber más acerca de la impresora, no puedo decir si necesita configurar algo.

Consulte la página de sttymanual para obtener más información.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.