Hallo, ich will mich gerade in serial Port und rs232 einarbeiten. dazu hab ich gegoogelt, aber die tutorials funktionieren bei mir nicht. ich will einfach nur erstmal irgendein 'helloworld' zum /dev/ttyS4 schicken und dann kontrollieren und anzeigen lassen, ob es angekommen ist am port. 2 terminals hab e ich offen. terminal 1: root@pc1:/home/user1# cat /dev/ttyS4 terminal 2: root@pc1:/home/user1# echo "hallo" > /dev/ttyS4 beide terminals haengen aber, also der cursor is in der newline ohne prompt. das hier muessten die beiden serialports meiner pci adapterkarte sein: root@pc1:/home/user1# dmesg | grep tty [ 0.000000] console [tty0] enabled [ 1.035158] 0000:03:00.0: ttyS4 at I/O 0xd030 (irq = 17, base_baud = 115200) is a ST16650V2 [ 1.057793] 0000:03:00.1: ttyS5 at I/O 0xd020 (irq = 18, base_baud = 115200) is a ST16650V2 root@pc1:/home/user1# also ttyS4 und ttyS5 warum geht da nix? also vom Prinzip her will ich halt sowas hier machen: https://giovanni.wordpress.com/2007/01/06/send-bytes-to-serial-port/ also ich blick da eh noch garnicht durch...erst hab ich es probiert ohne ein Kabel anzuschliessen. jetz hab ich mal ein Nullmodemkabel zwischen S4 und S5 gehaengt. aber nie kommt was. Gruss Stefan
:
Bearbeitet durch User
Hi, du schreibst die Daten mit echo nach ttyS4 und liest mit cat ebenfalls von ttyS4. Damit das funktioniert müsstest du an ttyS4 den TxD mit dem RxD verbinden. Wenn du, wie du geschrieben hast, ttyS4 mit einem Nullmodem-Kabel mit ttyS5 verbunden hast, dann kannst du in einer der beiden schreiben und müsstest die Daten an dem jeweils anderen Device lesen können. Das sollte dann natürlich in beiden Richtungen gehen. Greets Sebastian.
Sebastian schrieb: > Wenn du, wie du geschrieben hast, ttyS4 mit einem Nullmodem-Kabel mit > ttyS5 verbunden hast, dann kannst du in einer der beiden schreiben und > müsstest die Daten an dem jeweils anderen Device lesen können. Das > sollte dann natürlich in beiden Richtungen gehen. Hi Sebastian, also das hab ich jetz probiert, geht leider auch nicht: terminal 1: root@pc1:/home/user1# echo "hallo" > /dev/ttyS4 root@pc1:/home/user1# terminal 2 : wieder empty newline...kein hallo... root@pc1:/home/user1# cat /dev/ttyS5
Versuche mal bei einem "picocom /dev/ttyS4" und beim anderen "picocom /dev/ttyS5". Gib eventuell mit -b noch eine Baudrate mit. Prüfe vorher eventuell mit "stty -F /dev/ttyS4" was für eine baud rate etc. eingestellt ist. Damit kann man die auch setzen, wenn das nicht durch ein anderes Program (picocom, getty, etc.) erledigt wird.
Es gab schon mal ein ähnliches Thema. Lies das mal durch, vielleicht hilft es dir. Beitrag "Eingaben in eine Datei umleiten"
Was ist mit Flowcontrol? (RTS/CTS) DTR/DSR/CD ist richtig gesetzt?
Damals schrieb: > Was ist mit Flowcontrol? (RTS/CTS) > DTR/DSR/CD ist richtig gesetzt? genau von diesem ganzen Zeugs hab ich noch null Ahnung, aber ich vermute auch langsam dass es irgendwie an diesen Dingern/Settings liegen wird. mittlerweile geht wenigstens bisserl was. naemlich so: die Reihenfolge is anscheinend entscheidend. zuerst muss ich auf s4 den echo absenden. dann geht der cursor in die empty newline. aber noch ohne prompt. dann geh ich im anderen terminal rein und sage cat /dev/ttys5 und mach return, und dann reagiert auch das echo terminal und zeigt das prompt an, also dass der befehl erledigt is. und im cat terminal kommen manchmal ein 'h' oder ein unknown zeichen, danach aber immer gleich auch das prompt. also in der reihenfolge erst echo dann cat haengt jetz zumindest mal nix mehr. ich glaube dass da beim senden des echo erst die connection noch closed sein muss und durch das cat wird die connection erst open gemacht, irgendwie durch handshake vielleicht? aber mein nullmodem kabel hat kein handshake draht, nur masse tx und rx, laut artikelbeschreibung...hab noch nicht nachgeschaut. und zum picocom Tipp von Daniel: hab ich jetz mal probiert, aber ich weiss noch nicht wie man das benutzt. muss ich mal rumprobieren. also mit picocom kommt jetz wirklich was raus im target terminal, also genau die Buchstaben die ich im term1 eingebe, kommen im term2 raus. aber das is mir zu highlevel, mir wuerde es gefallen wenn das mit den schoenen basic Mitteln cat und echo auch gehen wuerde, so wie es in all den Tutorials auch geht. da kann man dan naemlich auch schoene bash scripte schreiben mit cat+echo vielleicht.
:
Bearbeitet durch User
Günter Lenz schrieb: > Beitrag "Eingaben in eine Datei umleiten" >Im unteren Fenster gebe ich dann: >cat > /dev/ttyUSB0 >ein, und im oberen Fenster gebe ich: >cat /dev/ttyUSB0 ah cool, das geht ja wirklich! ABER: das geht nur wenn man nach der Eingabe RETURN drueckt! hab ich grade zufaellig rausgefunden. wahnsinn, endlich geht mal was. term1: root@pc1:/home/user1# cat > /dev/ttyS4 term2: root@pc1:/home/user1# cat /dev/ttyS5 eingabe in term1 und senden mit returntaste. beenden mit ctrl+d danke
>Damals schrieb: >> Was ist mit Flowcontrol? (RTS/CTS) >> DTR/DSR/CD ist richtig gesetzt? > >genau von diesem ganzen Zeugs hab ich noch null Ahnung, aber ich vermute >auch langsam dass es irgendwie an diesen Dingern/Settings liegen wird. Das sind sogenannte Handshakeleitungen, wenn du sie in dein Datenkabel nicht hast und nur RXD und TXD benutzt kannst du das mit stty abschalten. Mit stty kannst du den Serial-Port nach deinen Wünschen konfigurieren. https://www.ip-insider.de/was-ist-ein-handshake-a-794054/ https://de.wikipedia.org/wiki/Datenflusssteuerung http://www.netzmafia.de/skripten/hardware/PC-Schnittstellen/seriell.html http://www.netzmafia.de/skripten/hardware/PC-Schnittstellen/SerialPort_Programming_c.pdf
jetzt habich was gutes gefunden: https://pimylifeup.com/raspberry-pi-serial/ im term1: root@pc1:/home/user1/lernen/pythontest# apt install python-serial root@pc1:/home/user1/lernen/pythontest# cat serialwrite.py #!/usr/bin/env python import time import serial ser = serial.Serial( port='/dev/ttyS4', #Replace ttyS0 with ttyAM0 for Pi1,Pi2,Pi0 baudrate = 9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1 ) counter=0 while 1: ser.write('Write counter: %d \n'%(counter)) time.sleep(1) counter += 1 root@pc1:/home/user1/lernen/pythontest# root@pc1:/home/user1/lernen/pythontest# python serialwrite.py und im term2: root@pc1:/home/user1# cat /dev/ttyS5 hallo 123 Write counter: 0 Write counter: 1 Write counter: 2 Write counter: 3 Write counter: 4 Write counter: 5 Write counter: 6 Write counter: 7 Write counter: 8 Write counter: 9 Write counter: 10 root@pc1:/home/user1#
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.