qual é a maneira mais fácil de configurar a porta serial no Linux?

6

No prompt de comando do Windows para configurar uma porta serial, posso usar de forma simples:

mode com1: 9600,n,8,1

ou para ler a configuração:

mode com1:

Existem comandos semelhantes no Linux? Qual seria a maneira mais fácil de encontrar e configurar a porta serial no Linux?

    
por Hrvoje T 13.11.2015 / 10:16

1 resposta

15

Você pode usar o comando stty para definir esses parâmetros.

Isso mostrará todas as configurações na primeira porta serial (substitua ttyS0 por ttyUSB0 se estiver usando uma porta serial USB):

stty -F /dev/ttyS0 -a

Isto irá definir a taxa de transmissão para 9600, 8 bits, 1 bit de parada, sem paridade:

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

Uma coisa que geralmente confunde as pessoas é que a maioria dos drivers seriais irá redefinir as configurações para os padrões assim que o dispositivo for fechado (ou seja, nenhum processo abre o dispositivo). Portanto, o comando stty acima definirá as configurações e, quando isso for feito, o driver as redefinirá novamente. Se primeiro você tiver o seu software de PDV aberto o dispositivo e, em seguida, executar as configurações de stty , ele deverá permanecer até que seu software de POS feche o dispositivo novamente (por exemplo, ao sair).

Eu teria pensado que o software POS deveria ter alguma maneira de configurar essas configurações por conta própria. Se você estiver criando seu próprio software para conduzir a impressora, primeiro abra o dispositivo e execute o comando stty .

Você também pode precisar brincar com outras configurações, por exemplo, opost significa que o pós-processamento de saída será executado. Se opost e onlcr estiverem definidos, o onlcr fará com que um retorno de carro extra (0xd) seja adicionado quando um byte de nova linha (0xa) for emitido, normalmente para impedir a impressão em escada, como

This is a line
              This is the next line

Isso pode ou não ser o que você deseja. Se você quiser uma saída bruta de um para um para a impressora, desligue opost (adicione -opost aos parâmetros stty ).

Handshaking (controle de fluxo) também é controlado com stty , sem saber mais sobre a impressora Não sei dizer se você precisa definir nada.

Verifique a stty manpage para mais informações.

    
por 13.11.2015 / 14:55