Forum: PC-Programmierung Linux RS232 RTS Problem


von A. B. (funky)


Lesenswert?

Hallo,

ich habe ein Problem mit der seriellen Schnittstelle unter Linux.

Bei einem Hardwaredesign hatte ich früher eine komplett beschaltete 
Schnittstelle und habe darüber mit einem uC kommuniziert und alles hat 
wunderbar funktioniert.

Irgendwelche Hardwarehandshakes habe ich dabei nicht benutzt(dachte ich)

Im Linux-Programm habe ich die Schnittstelle wie folgt konfiguriert:
term_new.c_cflag = COM_SPEED | CS8 |  CLOCAL | CREAD; //CRTSCTS
  term_new.c_cflag &= ~(CRTSCTS);
  term_new.c_iflag = IGNPAR | ICRNL;
  term_new.c_oflag = OPOST | ONLCR;
  term_new.c_lflag = ~(ICANON | ECHO);

In einer neuen Hardwareversion sind nun die unbenutzten Signalleitungen 
der RS232 weggefallen, was aber zu Problemen führt.
Wird RTS wieder verbunden, funktioniert jedoch alles wie vorher und 
gewünscht.

Eigentlich war ich der Meinung das ich mit term_new.c_cflag &= 
~(CRTSCTS); die Handshakegeschichte ausstelle, und nur die 3 Leitungen 
RX,TX und GND benötige. Dem scheint ja nun aber nicht so zu sein da die 
Leitung für das Linuxprogramm zur Kommunikation zu benötigen scheint. 
Eigentlich kann es sich dabei aber nur um einen festen Pegel handeln, da 
das Signal nur bis zum MAX232 geht und nicht weiter zu dem uC verbunden 
ist.

Weiß jemand ob es noch irgendeine andere Einstellung bei Linux gibt, 
welche mich da verarscht oder ob ich ihm da Softwaremäßig seinen 
gewünschten Pegel vorgaukeln kann?

Danke schonmal

von Gerry E. (micky01)


Lesenswert?

Naja, auf der Pc-Seite ist TxD ein Ausgang und RTS auch.
Richte Dein Augenmerk auf den uC.

Die Linuxseite sieht völlig in Ordnung aus.

von funky (Gast)


Lesenswert?

ich nochmal,

ich glaube KDevelop hat da bischen rumgesponnen.
Jetzt gehts nämlich, nachdem ich das ganze Projekt dann nochmal neu 
erstellt hatte.

Einerseits doof da ich wieder viel Zeit mit suchen verschwendet habe, 
andererseits aber auch gut, da mein Weltbil doch noch stimmt und CRTSCTS 
doch noch macht was es soll :D

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
Noch kein Account? Hier anmelden.