Interpretation der Stty-Ausgabe zum Starten der Verbindung mit Hyperterminal

2176
Lucas

Ich versuche, zwischen einem Embedded-Gerät, auf dem Linux ausgeführt wird, und einem PC zu kommunizieren, auf dem Windows XP über eine RS232-Verbindung ausgeführt wird. Unter Windows verwende ich Hyperterminal, weiß aber nicht, welche Einstellungen ich verwenden soll. Ich muss einstellen

  • Bits pro Sekunde
  • Daten Bits
  • Parität
  • Stopp-Bits
  • Ablaufsteuerung

Auf dem Linux-Gerät habe ich sttydie Einstellungen auf dieser Seite herausgefunden. Ich möchte diese Einstellungen NICHT am Linux-Gerät ändern, sondern nur auslesen. Es fällt mir jedoch schwer, die Ausgabe zu interpretieren.

~ $ stty -F / dev / ttyS0 - Geschwindigkeit 9600 Baud; Reihen 24; Spalten 80; intr = ^ C; quit = ^ \; löschen = ^ ?; töten = ^ U; eof = ^ D; eol =; eol2 =; start = ^ Q; stop = ^ S; susp = ^ Z; rprnt = ^ R; werase = ^ W; lnext = ^ V; Spülung = ^ O; min = 1; Zeit = 0; -paren-parodd cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istip -inlcr -igncr -crncr-ixon -ixoff -iuclc -ixany -imaxbel opost -olcuc -crnl -online -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iext

Bits per second muss vermutlich auf 9600 gesetzt werden, aber wie muss ich die verbleibende Ausgabe von stty interpretieren?

Bearbeiten:

Okay, ich habe etwas mehr gemacht. Nachsehen, ob gettyläuft:

~# ps | grep getty 1557 root 1884 S /sbin/getty 115200 ttyS2 1558 root 1884 S /sbin/getty 38400 tty1 1600 root 2636 S grep getty 

Ich ttyS2gehe davon aus, dass ich auf dem Gerät höre und es scheint auch die Baudrate als anzuzeigen 115200. Nun lief ich sttynach den Einstellungen:

~# stty -F /dev/ttyS2 -a speed 115200 baud; rows 24; columns 80; intr = ^C; quit = ^\; erase = ^?; kill = ^X; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke 

Beim Versuch, dies in Hyperterminal zu verwenden, würde ich folgende Einstellungen annehmen:

  • Bits pro Sekunde: 115200
  • Datenbits: 8 (wegen cs8)
  • Parität: Keine (wegen -parenb)
  • Stoppbits: 1 (wegen -cstopb)
  • Flusskontrolle: keine (wegen -crtscts und -ixon)

Aber es funktioniert immer noch nicht.

2

1 Antwort auf die Frage

2
David Schwartz

Versuchen Sie 8 Bit, keine Parität, ein Stoppbit, Software-Flusskontrolle. Das kommt von:

"cs8" bedeutet 8 Datenbits. "-crtscts" bedeutet keine Hardware-Flusskontrolle. "ixon" bedeutet sanfte Flusskontrolle. "-cstop" bedeutet ein Stoppbit.

Danke, das macht Sinn. Es funktioniert immer noch nicht. Möglicherweise müssen die Kabel usw. überprüft werden. Lucas vor 12 Jahren 0
Hört etwas an diesem Hafen? Hast du `getty 'oder ähnliches am Laufen? Andernfalls stellen Sie eine Verbindung zu einem Port her, den kein Prozess überwacht. David Schwartz vor 12 Jahren 0
Dank Ihrer Antwort habe ich meine Frage etwas hinzugefügt, aber leider funktioniert sie immer noch nicht. Irgendwelche Ideen? Lucas vor 12 Jahren 0
Ich würde versuchen, neu zu starten und das Gerät überhaupt nicht zu verwirren. Lassen Sie es mit "getty" schaffen. Möglicherweise haben Sie getty verwirrt. Normalerweise erwartet das Erhalten der Hardware-Flusskontrolle. David Schwartz vor 12 Jahren 0
Okay, es stellte sich als eine falsche Verbindung auf unserer Leiterplatte heraus. Aber ich werde dies als Antwort markieren, denn genau das habe ich gefragt. Lucas vor 12 Jahren 0