mikrocontroller.net

Forum: PC-Programmierung RS232 DataReceived tritt nicht ein


Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Ich habe ein Programm geschrieben, das Daten von einer RS232 
Schnittstelle empfängt. Das Programm funktioniert auf meinem Desktop PC 
einwandfrei. Wenn ich es jedoch auf meinem Laptop betreiben möchte habe 
ich ein Problem. Und zwar hat der Laptop keine RS232 Schnittstelle. Also 
habe ich mir einen Adapter besorgt, den Treiber installiert und mein 
Gerät angeschlossen. In der Gerätesteuerung ist dann auch sofort COM3 
aufgetaucht, schön. Wenn ich nun mit meinem Prog COM3 öffne kommt keine 
Fehlermeldung oder so, wenn ich nach dem öffnen einen Haltepunkt setze, 
wird auch angezeigt das der Port open ist. Aber es kommen einfach keine 
Daten an. Das DataReceived Ereignis tritt einfach nicht ein. Also, mal 
schnell Hyperterminal gestartet und geschaut was da ankommt. Nur Schrott 
mit dem ich nichts anfangen kann. Aber dieser Schrott muß doch 
eigentlich reichen um das DataReceived auszulösen, oder nicht? Ich weis 
gerade nicht weiter, hatte schon mal jemand das Problem, oder hat eine 
Idee was ich noch versuchen könnte? Weis jemand was genau das 
DataReceived auslöst?

Ich nutze das FW 2.0 und VB.2005

Gruß
Christoph

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,
soweit ich mich erinnern kann, wird es durch den endchar ausgelöst.
also ein CR oder LF.

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn "nur Schrott" ankommt: Baudrate und Zeichenrahmen kontrollieren.

>Aber dieser Schrott muß doch
>eigentlich reichen um das DataReceived auszulösen, oder nicht?

Eher nicht: Die Zeichen kommen zwar an der Schnittstelle an, da sie aber 
fehlerhaft sind, werden sie verworfen (und eventuell ein Fehlerbit 
gesetzt).
0 valid characters received..., wo soll da das "Ereignis" herkommen ?

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Was meinst du mit "Zeichenrahmen" ? Das sagt mir jetzt nichts....


Gruß
Christoph

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeichenrahmen:
Anzahl der Datenbits, Parität, Anzahl der Stopbits.
Gängig ist zb 8N1, 8 Datenbits, N(o) Parity, 1 Stopbit.

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aso, das passt aber alles. Das habe ich schon 1000* verstellt und 
abgeglichen. Wenn ich das ganze dann auf einem Rechner mit RS232 
Schnittstelle(also ohne Adapter & USB) teste funktioniert alles. Es 
scheint also ein Hardware Problem zu sein, oder?

Gruß
Christoph

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht ist der USB-Serial Konverter kaputt, vielleicht unterstützt 
er die verwendete Baudrate nicht, vielleicht ist die Baudrate zu 
hoch....kann vieles sein.

Autor: AGA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich vermute mal, dass du über ein Card-Bus-Interface (bzw. PCMCIA) die 
serielle Schnittstelle an den Laptop bekommst.
Damit hatte ich auch schon Probleme.

Problem bei diesen Adaptern: Hardware-Handshakes sind nicht unterstützt 
(RTS und CTS Signale, DSR und DTR Signal ist auch Problem).
RS232-Schnittstellentreiber brauchen am PC in der Regel aber CTS-Signal, 
damit Zeichenempfang erfolgt. In VB MUSS RTS explizit HIGH gesetzt 
werden, damit Schnittstelle überhaupt funktioniert.

Wenn Schrottzeichen ankommen, gibt es ein elektrisches Potentialproblem.
Die V24-Schnittstelle benötigt +/- 12 V Pegel. Am PC klappen manchmal 
auch Pegel bis +/- 7V.
Entscheidend ist wohl die Ground-Leitung. Wenn es da 
Potentialunterschiede zwischen den angeschlossenen Geräten gibt, kann es 
bei niedrigen Spannungspegeln Schrott geben.
Versuche mal, das Netzteil am Laptop abzuhängen, so dass Laptop nur auf 
Batterie läuft. Dann die Masse (oder Ground) der beiden Geräte 
verbinden,
damit Laptop gleiches Potential wie externer Sender hat.
Notfalls mit Oszi die Pegel checken.
Wie man definiertes 0V-Potential an die Adapterkarte bringt, weiss ich 
auch nicht.

Bin kein echter 'Elektriker', deshalb meine evtl. ungenaue 
Ausdrucksweise.


Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, ich habe es heute rausgefunden.

MyRS232..DtrEnable  = True

Ich hatte das auf false stehen. Jetzt läuft es :-)
Das war mal wieder eine schwere Geburt, dafür konnte ich mich aber um so 
mehr freuen......

Vielen Dank an euch!

Gruß
Christoph

Autor: retep (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe derzeit ein gleiches problem wie du. nur das mein rs232 adaptor
am usb bus sitzt. und ich die software im alten powerbasic schreibe.

nun zum problem.
ich habe zwei adaptor und drei Laptop.

so auf einem Labtop laeufen beide adaptor und auch die Software.
auf den anderen beiden Labtop bekommt eine nur receive aber kann nicht 
senden. Der andere Labtop da geht weder recceive noch transmitt.

alle Labtop haben XP Pro und alle in der selben version.

was kann das sein?

Was meintest du mit

MyRS232..DtrEnable  = True

wo ist das zum einstellen?

kann sein das da bei mir noch solch probleme sind.

danke fuer die antwort!

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.