www.mikrocontroller.net

Forum: PC-Programmierung Probleme mit RS232


Autor: BinVerzweifelt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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! :-)

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: BinVerzweifelt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: AndreasH (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stevko (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: BinVerzweifelt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Dierk U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.