GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo sabe cat la velocidad en baudios del puerto serie?

El stty conjuntos de utilidades o informes sobre las características de E/S del terminal para el dispositivo que es su entrada estándar. Estas características se utilizan al establecer una conexión a través de ese medio en particular. cat no conoce la tasa de baudios como tal, sino que imprime en la pantalla la información recibida de la conexión en particular.

Como ejemplo stty -F /dev/ttyACM0 da la tasa de baudios actual para el dispositivo ttyACM0.


cat simplemente usa cualquier configuración para la que el puerto ya esté configurado. Con este pequeño fragmento de C, puede ver la velocidad en baudios establecida actualmente para un puerto serie en particular:

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;
}

Ejecutarlo:

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

Los números que obtenga se pueden buscar en /usr/include/asm-generic/termios.h , donde hay #define s como B9600 etc. Tenga en cuenta que los números en el archivo de encabezado y en el get-baud-rate la salida está en octal.

Tal vez puedas experimentar y ver cómo son estos números en un arranque nuevo y si cambian más tarde.


Linux
  1. ¿Cómo funciona la punta adhesiva?

  2. ¿Cómo sabe Bash cómo se está invocando?

  3. ¿Cómo monitorear una conexión serial a 250000 baudios?

  4. ¿Cómo encontrar qué puerto serie está en uso?

  5. ¿Cómo funciona el comando Tee??

Cómo encontrar el número de puerto de un servicio en Linux

Cómo saber los grupos de un usuario de Linux

Cómo cambiar el puerto SSH en CentOS

¿Cómo saber qué significa el 'errno'?

¿Cómo funciona el comando ps?

¿Cómo determinar la tasa de baudios de un puerto serie?