hallo Leute, kann jemanden mir sagen wie ich jede 1 Sekunde dieses String über UART sende? ich habe so geschrieben, aber es passiert gar nicht. while true; do sleep 1; echo "Hallo\n" > /dev/ttyS1; done danke
was genau heißt "passiert gar nichts" ? hast du mal ein schnittstellentester (LED) an die Schnitte gehalten und geschaut, ob die LED flackert? Besser sichtbar wäre es dann, etwas längeren Text auf die Schnittstelle rausschreiben.
/dev/ttyS1 ist jene Schnittstelle, die under FreeDOS COM2 heissen würde Versuchs mal mit /dev/ttyS0, das wäre COM1 setserial : Ändert Baudrate usw.
hallo, 1) es scheint, ob ich kein Recht zu schreiben habe. wenn ich das Befehl: chmod u+x /dev/ttyS1 eingebe, bekomme ich die Meldung Read only file system. wie bekomme ich das Recht zu schreiben? 2)wenn ich das Befehl echo "hallo" > /dev/ttyS1 eingebe, bekomme keine Meldung sondern das Zeichen >.Wenn ich das Pin im oszilloskop überprufe, habe ich kein Signal. 3) wenn ich ein String vom dem Mikrocontroller sendet, mit cat Befehle sehe ich das String. danke
versuchs mal als root denke nicht das du da die Rechte ändern kannst. Wird zwar als eine Datei dargestellt aber eigentlich ists ein Gerät. mfg Matrix
kommt ein bißchen auf Linux an... aber sudo echo "Hallo\n" > /dev/ttyS1 geht fast immer... (Passwort ist dein Passwort für deinen User)
gast wrote:
> ich kriege die selbe Meldung und dazu sudo not found
Dann mach einfach "su", dann das root password eingeben und dann
weiterprobieren...
Schau einfach welcher Gruppe /dev/ttyS1 gehört und bringe den Benutzer mit dem du auf die serielle schreiben willst in diese Gruppe. Bei meinem Debian ist es z.B. die Gruppe "dialout", glaube es wird bei anderen Distributionen auch "wheel" verwendet. ,--- | # ls -la /dev/ttyS* | crw-rw---- 1 root dialout 4, 64 2008-11-27 21:05 /dev/ttyS0 | crw-rw---- 1 root dialout 4, 65 2008-10-26 13:22 /dev/ttyS1 | crw-rw---- 1 root dialout 4, 66 2008-10-26 13:22 /dev/ttyS2 | crw-rw---- 1 root dialout 4, 67 2008-10-26 13:22 /dev/ttyS3 `--- Gruß Dominique Görsch
> 3) wenn ich ein String vom dem Mikrocontroller sendet, mit cat Befehle > sehe ich das String. Damit hast du Leserecht für /dev/ttyS1. Wenn du Leserecht hast, hast du mit ziemlicher Sicherheit auch Schreibrecht. Die Schreib-/Leserechte werden mit
1 | ls -l /dev/ttyS1 |
angezeigt. Was passiert, wenn du einfach
1 | echo Hallo >/dev/ttyS1 |
eingibst? - Erscheint die Fehlermeldung "Permission denied"? Dann hast du tatsächlich kein Schreibrecht. - Erscheint eine andere Fehlermeldung? Dann diese bitte posten. - Terminiert der Befehl sofort? Dann wurden die Daten wahrscheinlich gesendet, aber die Baudrate oder ein anderer RS-232-Parameter ist für Sender und Empfänger unterschiedlich gesetzt. Du solltest die Schnittstellenparameter mit stty überprüfen (s.u.). - Hängt der Befehl, und du musst ihn mit ^C abbrechen? Dann ist wahrscheinlich der Hardware-Handhsake aktiviert. Auch in diesem Fall hilft stty weiter. Mit
1 | stty -aF /dev/ttyS1 |
werden die aktuellen Schnittstellenparameter angezeigt. Damit kannst du die Baudrate, die Paritätseinstellung, Handshake uvm. überprüfen. Sind die Parameter falsch eingestellt, kannst du sie ebenfalls mit stty richtig einstellen. > wenn ich das Befehl: chmod u+x /dev/ttyS1 eingebe, bekomme ich die > Meldung Read only file system. Dann kannst du auch als Root die Rechte nicht ohne weiteres ändern. Du müsstest erst das Dateisystem, auf dem sich /dev befindet, read/write mounten. Ist dieser Linux-Rechner ein gewöhnlicher PC oder irgend so ein Embedded-Gerät ohne Festplatte? Aber wie gesagt, wahrscheinlich liegt das Problem nicht bei den Schreib-/Leserechten, deswegen musst du sie auch nicht ändern.
hallo yalu, ich habe wie du gesagt habe 1) ls -l /dev/ttyS1 2) echo Hallo >/dev/ttyS1 es hängt an der stelle ich habe kein harware handshare aktiviert, aber ich habe das canonical input aktiviert. Kann es die Fehler veruarsachen. danke
> 2) echo Hallo >/dev/ttyS1 es hängt an der stelle
Das hängt auch bei mir, aber ich besitze keine Serielle-Schnittstelle.
Wenn ich meinen USB-RS232 Adapter anstecke, dann funkt. des nur, wenn
ich an /dev/cu.UC-232AC (also nicht /dev/tty.UC-232AC) die Sachen
schicke. Das liegt aber daran, dass ich OS X als Betriebsystem hab und
unter darwin (bsd) ist es bissl anders als unter Linux (soweit ich das
mitbekommen habe).
Die Frage ist vllt überflüssig, aber Du bist sicher, dass deine
Serielle-Schnittstelle das Device ttyS1 ist?
Probier mal:
1 | echo Hallo > /dev/pts/1 |
auf tty* darf der User nie schreiben und das ist auch gut so. Kann sein, dass du dich noch der Gruppe tty oder so hin zu fügen musst. Der Gruppenname ist abhängig von deiner Distribution und ob du auf einem PC bist, bei einer Embedded-Büchse kann das wiederum ganz anders aussehen. Bist du dir sicher, dass du auf das zweite Device also 1 schreiben willst und nicht auf das erste also 0?
tata wrote: > auf tty* darf der User nie schreiben und das ist auch gut so. Kann sein, > dass du dich noch der Gruppe tty oder so hin zu fügen musst. Der > Gruppenname ist abhängig von deiner Distribution und ob du auf einem PC > bist, bei einer Embedded-Büchse kann das wiederum ganz anders aussehen. Schrieb ich das nicht schon? ;) Gruß Dominique Görsch
Hast du schon versucht mit gtkterm oder mit minicom die Schnittstelle zu verwenden?
>> auf tty* darf der User nie schreiben und das ist auch gut so. Kann sein, >> dass du dich noch der Gruppe tty oder so hin zu fügen musst. Der >> Gruppenname ist abhängig von deiner Distribution und ob du auf einem PC >> bist, bei einer Embedded-Büchse kann das wiederum ganz anders aussehen. > Schrieb ich das nicht schon? ;) > Ups. ;-) Naja, erstmal muss 'Gast (Gast)' bzw. 'gast (Gast)' antworten. ;-)
Habe mit Linux noch nicht so viel Erfahrungen aber meine Anwendung, die Daten über Serielle Ports einsammelt, hat die Gruppe uucp um den verwendeten Usernamen erweitert. Also schau mal nach der Gruppe uucp, ob der angemeldete User dort Member ist oder nicht.
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.