Forum: PC-Programmierung Probleme mit RS232


von BinVerzweifelt (Gast)


Lesenswert?

Hallo allerseits!

Ich hoffe mal, hier kann mir einer helfen. Ich weiß nämlich nicht mehr
weiter. Mein Problem ist: Ich habe ein Programm geschrieben und greife
ganz normal über COM1 auf ein Messgerät zu. Ich sende und empfange auch
wie gewünscht. Nun habe ich das Programm auf 2 verschiedene Labtops
kopiert und dort funktioniert es nicht so wirklich. Das gleiche
Programm sendet nur und das Gerät sendet auch zurück, aber das Programm
bekommt diese Antwort nie. Stattdessen hängt es an der Stelle fest. Auf
allen Rechnern befindet sich Win 2000. Die ganzen Einstellungen für die
Schnittstelle stelle ich im Programm ein, die sind also immer gleich!
Ich weiß echt nicht, woran das liegen könnte!!! Weiß mir da einer zu
helfen? Bin über jedes bisschen Hilfe dankbar, da es mir schon
Kopfschmerzen macht!

Den Quelltext zu kopieren bringt wohl nicht viel, weil ich denke, dass
das Problem woanders zu finden ist. Aber ich brauche für die serielle
Schnittstelle doch keine Treiber oder so oder? Und wenn, dann sollte
Win das doch verwalten.

Ich danke euch für jedes bisschen Hilfe! :-)

von Jörg (Gast)


Lesenswert?

Sowas kann durchaus mal ein ganz simples Problem sein - sind die
seriellen Schnittstellen im BIOS freigeschaltet, sind sie im
Hardware-Manager im Win2k zu sehen (und auch dort aktiviert),
funktioniert eine Null-Modem-Verbindung von NB zu NB?

Jörg.

von BinVerzweifelt (Gast)


Lesenswert?

Moin!

Danke für deine Hilfe!

Die simplem Probleme machen mir in der Regel auch am schwersten zu
schaffen ;).
Ich denke schon, dass die Schnittstellen im BIOS freigeschaltet sind,
weil ich kann ja senden (aber nicht empfangen). Die COM1 ist auch im
HW-Manager zu sehen.
Was heisst NB?

von Thorsten (Gast)


Lesenswert?

Sind deine Laptops von der Geschwindigkeit her wesentlich anders als
dein Rechner auf dem es läuft ? Das könnte nämlich auch zu Problemen
führen, evtl. unsaubere Threadprogrammierung etc.

Thorsten

von AndreasH (Gast)


Lesenswert?

Was passiert denn mit Hypterterminal wenn Du 2 und 3 (Txd/RXD)
kurzschliesst?
Wenn Du dann eine Taste drückst sollte sie, sofern Echo eingeschaltet
ist, doppelt zu sehen sein.

Es kann auch noch sein, daß der Hardwarehandshake eingeschaltet ist.
Hast Du den in Deiner Software ausgeschaltet?

Grüße
Andreas

von Stevko (Gast)


Lesenswert?

Hallo BinVerzweifelt,

es gibt natürlich viele Fehlerquellen, aber die manche Laptops haben
eine Besonderheit. Wegen Platzmangel oder Kostengründen wird am
Pegelwandler (Max 232) gespart. Das wurde schon in manchen Tests
erörtert, da sich diesbezüglich Anfragen von den Usern häuften.
Verbindungen die sonst immer funktionierten, sind auf einem anderen
Laptop nicht realisierbar. Aus meiner Erfahrung sind besonders
Billig-Laptops anfällig, Spitzenreiter Gericom.
Wenn es möglich ist, verwende mal zum Test ein ganz kurzes Com-Kabel.
Bringt das keinen Erfolg, dann verbinde mal Laptop mit PC und versuche
eine Übertragung.  Alternativ kannst Du Dir auch die Pegel mit dem Oszi
mal ansehen.
Wie gesagt, es ist nur eine Möglichkeit.

Gruß
   Stevko

von BinVerzweifelt (Gast)


Lesenswert?

Hallo!

Nochmals Danke für eure Hilfen!
Ich habe das Problem inzwischen selber gelöst, auch wenn ich es nicht
ganz verstehe. Und zwar lese ich auf dem PC mit ReadFile() einfach
(immer) 64 Byte in ein Char-Array. Das funkioniert auch wenn die
Antwort des Messgerätes viel kürzer ist. Was sie eigentlich immer ist,
da sie ja nur ein Messwert wieder gibt. Beendet werden die
Übertragungsdaten immer mit einem Linefeed. Nun hab ich das mal so
umprogrammiert, dass das Programm immer nur 1 Byte liest und wenn das
Byte = LF ist, dann sollte es aufhören zu lesen. Das funktioniert nun
auch auf dem Laptop und einem anderen alten PC. Aber warum
funktionierte das mit dem konstanten einlesen von 64 Byte auf diesem PC
und auf keinem anderen? Liegt das vielleicht doch an der
Schnittstellenverwaltung?

(Leider ist das Messgerät auch so klug und schneidet die Nullen ab, so
dass der Antwortstring nicht konstant ist)

Ich bin trotzdem sehr erleichtert :)

Danke nochmal.

von Dierk U. (Gast)


Lesenswert?

möglicherweise hat das was damit zu tun, wie hoch der Buffer eingestellt
ist (unter Windows kann man den FIFO Buffer einstellen soweit ich weiß)
schau mal ob du im Gerätemanager bei "Com1" "Anschlußeinstellungen"
Unterschiede in der Konfiguration bei "Fifo-Puffer verwenden" findest

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.