Il stty
set di utilità o report sulle caratteristiche di I/O del terminale per il dispositivo che è il suo ingresso standard. Queste caratteristiche vengono utilizzate quando si stabilisce una connessione su quel particolare mezzo. cat
non conosce il baud rate in quanto tale, piuttosto stampa sullo schermo le informazioni ricevute dalla particolare connessione.
Ad esempio stty -F /dev/ttyACM0
fornisce il baud rate corrente per il dispositivo ttyACM0.
cat
utilizza solo le impostazioni per le quali la porta è già configurata. Con questo piccolo frammento C puoi vedere il baud rate attualmente impostato per una particolare porta seriale:
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;
}
Eseguilo:
./get-baud-rate < /dev/ttyS0 # or whatever your serial port is
I numeri che ottieni possono essere cercati in /usr/include/asm-generic/termios.h
, dove sono presenti #define
s come B9600
ecc. Si noti che i numeri nel file di intestazione e nel get-baud-rate
output sono in ottale.
Forse puoi sperimentare e vedere come sono questi numeri su un nuovo avvio e se cambiano in seguito.