GNU/Linux >> Znalost Linux >  >> Linux

Jak kočka pozná přenosovou rychlost sériového portu?

stty obslužný program nastavuje nebo hlásí charakteristiky I/O terminálu pro zařízení, které je jeho standardním vstupem. Tyto vlastnosti se používají při navazování spojení přes toto konkrétní médium. cat nezná přenosovou rychlost jako takovou, spíše vytiskne na obrazovku informace přijaté z konkrétního připojení.

Jako příklad stty -F /dev/ttyACM0 udává aktuální přenosovou rychlost pro zařízení ttyACM0.


cat pouze používá jakékoli nastavení, pro které je port již nakonfigurován. S tímto malým úryvkem C můžete vidět přenosovou rychlost aktuálně nastavenou pro konkrétní sériový port:

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

Spusťte to:

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

Získaná čísla lze vyhledat v /usr/include/asm-generic/termios.h , kde je #define s jako B9600 atd. Všimněte si, že čísla v záhlaví souboru a v get-baud-rate výstupy jsou v osmičkové soustavě.

Možná můžete experimentovat a zjistit, jaká jsou tato čísla na novém startu a zda se později změní.


Linux
  1. Jak zjistit, co znamená „errno“?

  2. Jak funguje cat << EOF v bash?

  3. Jak zjistím, který /dev/ttyS* je můj sériový port?

  1. Jak poznám, že sériový port skutečně přenáší data, aniž by bylo nutné zařízení otevřít?

  2. Jak funguje příkaz ps?

  3. Jak určit přenosovou rychlost sériového portu?

  1. Jak Sticky Bit funguje?

  2. Jak funguje Tee Command?

  3. Jak příkaz Xdg-open ví, kterou aplikaci použít k otevření souboru?