www.mikrocontroller.net

Forum: PC-Programmierung DataReceived Evenet funktioniert nicht


Autor: grex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute, da ich mit der Suchenfunktion nur mehr verwirrt wurde als
geholfen, möchte ich bezüglich "Empfang and der RS232" nochmal einen
neuen Beitrag anfangen.

Ich verwende VB.NET 2005 mit Framework 2.0 und ich bin gerade dabei
über die RS232 (System.io.ports) zu kommunizieren.

Es ist mir gelungen Byte´s an einen Controller zu senden (write), doch
leider gelingt mir der Empfang nicht wirklich.

Ich würde gerne das Event:"DataReceived" verwenden, doch leider hängt
er sich immer auf. Ich habe es auch schon per Button versucht die Daten
zu empfangen, doch leider funktioniert das auch nicht.

Wie gesagt senden funktioniert, empfangen nicht.

Hir der stand der Dinge:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click

    Dim Wert As Byte
    Wert = SerialPort1.ReadLine
    txtInput.Text = Wert

End Sub



Lg grex

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schickt dein Mikro auch einen NewLine?

Autor: grex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja hab ich mit einem Terminalprogramm mehrmals erfolgreich probiert.

Mit dem Terminalp. funktionierts einwandfrei.

lg grex

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit "hängt sich auf"? Was passiert dabei? Werden keine
Exceptions geworfen? Hast du bei der Initialisierung des serialPorts
den Eventhandler für DataReceived hinzugefügt?

Ich verwende ebenfalls die serialPort-Klasse des .Net 2.0 nur halt in
C# und der DataReceived Eventhandler funktioniert einwandfrei. Hier ein
paar Codeschnipsel (vielleicht hilfts).

<CODE>
// Initialisierung
this.serialPort1.ParityReplace = ((byte)(0));
      this.serialPort1.PortName = "COM2";
      this.serialPort1.DataReceived += new
System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1DataRecei 
ved);

...
...

// DataReceived Eventhandler
void serialPort1DataReceived(object sender, System.EventArgs e)
{
  byte[this.serialPort1.BytesToRead] buffer;
        this.serialPort1.Read(buffer, 0,
this.serialPort1.BytesToRead);

this.richTextBox1.AppendText("Empfangen:  "+buffer.ToString());
}

Autor: grex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Slowflyer,
nein den "Eventhandler habe ich nicht hinzugefügt. Wofür ist der? Wo
fügt man den ein? (ev. jemand ein Bsp. in VB.NET?)

LG

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie man einen Eventhandler in VB bekannt macht weiss ich nicht, da hilft
aber oft die MSDN weiter.

http://msdn2.microsoft.com/en-us/library/system.io...

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.