quelle est la façon la plus simple de configurer le port série sous Linux?

13

Dans l'invite de commande Windows pour configurer un port série, je peux utiliser simplement:

mode com1: 9600,n,8,1

ou pour lire la configuration:

mode com1:

Existe-t-il des commandes similaires sous Linux? Quelle serait la façon la plus simple de trouver et de configurer le port série sous Linux?

Hrvoje T
la source
Normalement, vous pouvez le modifier directement dans les applications que vous utilisez pour accéder à la série, par exemple screen /dev/ttyS0 <baud-rate>(la valeur par défaut serait 9600, quels que soient les paramètres à l'échelle du système, même pas sûrs que cela existe)
phk
Je dois le configurer pour utiliser une imprimante POS.
Hrvoje T
OK, dans ce cas, essayez les sttycommandes mentionnées sur: wiki.openwrt.org/doc/recipes/serialbaudratespeed
phk

Réponses:

27

Vous pouvez utiliser la sttycommande pour définir ces paramètres.

Cela montrera tous les paramètres sur le premier port série (remplacer ttyS0par ttyUSB0si vous utilisez un port série USB):

stty -F /dev/ttyS0 -a

Cela définira le débit en bauds à 9600, 8 bits, 1 bit d'arrêt, sans parité:

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

Une chose qui déroute généralement les gens est que la plupart des pilotes série réinitialiseront les paramètres par défaut une fois le périphérique fermé (c'est-à-dire qu'aucun processus n'a plus le périphérique ouvert). Ainsi, la sttycommande ci-dessus définira les paramètres, puis une fois terminée, le pilote les réinitialise à nouveau. Si votre logiciel POS ouvre d'abord l'appareil, puis effectue les sttyréglages, il doit rester jusqu'à ce que votre logiciel POS ferme à nouveau l'appareil (par exemple à la sortie).

J'aurais pensé que le logiciel POS devrait avoir un moyen de configurer lui-même ces paramètres. Si vous écrivez votre propre logiciel pour piloter l'imprimante, assurez-vous d'abord d'ouvrir le périphérique, puis d'exécuter la sttycommande.

Vous devrez peut-être également jouer avec d'autres paramètres, par exemple opost, cela signifie que le post-traitement de sortie sera effectué. Si opostet onlcrsont tous deux définis, le onlcrentraînera l'ajout d'un retour chariot supplémentaire (0xd) lorsqu'un octet de nouvelle ligne (0xa) est sorti, généralement pour empêcher l'impression d'escalier comme

This is a line
              This is the next line

Cela peut ou non être ce que vous voulez. Si vous souhaitez une sortie un à un brute vers l'imprimante, opostdésactivez-la (ajoutez-la -opostaux sttyparamètres).

La prise de contact (contrôle de flux) est également contrôlée avec stty, sans en savoir plus sur l'imprimante, je ne peux pas dire si vous devez régler quoi que ce soit.

Consultez la sttypage de manuel pour plus d'informations.

gémir
la source