Der stty
Dienstprogramm legt oder meldet Terminal-E/A-Eigenschaften für das Gerät, das seine Standardeingabe ist. Diese Eigenschaften werden verwendet, wenn eine Verbindung über dieses bestimmte Medium hergestellt wird. cat
kennt die Baudrate als solche nicht, sondern gibt auf dem Bildschirm Informationen aus, die von der jeweiligen Verbindung empfangen wurden.
Als Beispiel stty -F /dev/ttyACM0
gibt die aktuelle Baudrate für das ttyACM0-Gerät an.
cat
verwendet einfach die Einstellungen, für die der Port bereits konfiguriert ist. Mit diesem kleinen C-Snippet können Sie die aktuell eingestellte Baudrate für einen bestimmten seriellen Port sehen:
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;
}
Führen Sie es aus:
./get-baud-rate < /dev/ttyS0 # or whatever your serial port is
Die Nummern, die Sie erhalten, können Sie in /usr/include/asm-generic/termios.h
nachschlagen , wo es #define
gibt s wie B9600
usw. Beachten Sie, dass die Zahlen in der Header-Datei und im get-baud-rate
Ausgabe erfolgt in Oktal.
Vielleicht können Sie experimentieren und sehen, wie diese Zahlen bei einem Neustart aussehen und ob sie sich später ändern.