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! :-)
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.
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?
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
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.