GNU/Linux >> Tutoriels Linux >  >> Linux

Comment cat connaît-il le débit en bauds du port série ?

Le stty l'utilitaire définit ou signale les caractéristiques d'E/S du terminal pour le périphérique qui est son entrée standard. Ces caractéristiques sont utilisées lors de l'établissement d'une connexion sur ce support particulier. cat ne connaît pas le débit en bauds en tant que tel, il imprime plutôt à l'écran les informations reçues de la connexion particulière.

Par exemple stty -F /dev/ttyACM0 donne le débit en bauds actuel pour le périphérique ttyACM0.


cat utilise simplement les paramètres pour lesquels le port est déjà configuré. Avec ce petit extrait de C, vous pouvez voir le débit en bauds actuellement défini pour un port série particulier :

get-baud-rate.c

#include <termios.h>
#include <unistd.h>
#include <stdio.h>

int main() {
  struct termios tios;
  tcgetattr(0, &tios);
  speed_t ispeed = cfgetispeed(&tios);
  speed_t ospeed = cfgetospeed(&tios);
  printf("baud rate in: 0%o\n", ispeed);
  printf("baud rate out: 0%o\n", ospeed);
  return 0;
}

Exécutez-le :

./get-baud-rate < /dev/ttyS0 # or whatever your serial port is

Les numéros que vous obtenez peuvent être recherchés dans /usr/include/asm-generic/termios.h , où il y a #define s tels que B9600 etc. Notez que les nombres dans le fichier d'en-tête et dans le get-baud-rate les sorties sont en octal.

Vous pouvez peut-être expérimenter et voir à quoi ressemblent ces chiffres sur un nouveau démarrage et s'ils changent plus tard.


Linux
  1. Comment savoir ce que signifie 'errno' ?

  2. Comment cat << EOF fonctionne-t-il dans bash?

  3. Comment partager la connexion internet ?

  4. Comment savoir si un port série transmet réellement des données, sans ouvrir l'appareil ?

  5. Comment fonctionne la commande ps ?

Comment trouver le numéro de port d'un service sous Linux

Linux - Comment le noyau Linux connaît-il les numéros majeurs et mineurs des périphériques ?

Comment Bash sait-il comment il est invoqué ?

Comment fonctionne la commande Tee ? ?

Comment connaître les groupes d'un utilisateur Linux

Comment changer le port SSH dans CentOS