Forum: PC-Programmierung Serial port Grundlagen in Visual Studio 2008


von Michal (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Community,

ich habe erfolgreich einen Mikrocontroller dazu gebracht, per serielle 
Schnittstelle Daten an PC zu senden.

Dies funktioniert zuverlässig und ich kann sie problemlos in einem 
Terminalprogramm empfangen.

Nun wollte ich auf die schnelle eine GUI in VB2008 basteln und 
offensichtlich scheitere schon beim Port-Öffnen?

Eine Form reingezogen, ein SerialPort reingezogen und seine 
Eigenschaften an die gegebenen Kommunikation-Einstellungen angepasst; 
siehe Attachment.

"If" zeigt dass Port nicht geöffnet wurde und "Data received" Ereignis 
zündet nicht.

Bitte noch nichts erweitern sondern mir klar machen was ich auf dieser 
Etappe falsch mache?

Danke voraus

Michal

von Arc N. (arc)


Lesenswert?

Falls noch nicht gefunden, an passender Stelle mal
Dim ports As String() = SerialPort.GetPortNames()
einfügen und einen Breakpoint setzen...

von Michal (Gast)


Lesenswert?

Hallo,

also jetzt habe ich das Problem auf's minimalste reduziert:

Public Class MainForm

    Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As 
System.EventArgs)
        Dim ports As String() = IO.Ports.SerialPort.GetPortNames()
        MsgBox(ports)
    End Sub
End Class

zeigt kein MsgBox, obwohl ich ich einen "COM2: USB Serial Port (COM2)" 
habe und im Terminalprogramm kommuniziere.

(Natürlich trenne ich ihn im Terminalprogramm vor dem VB2008 Versuch).

Ideen? Ich nutze Vista mir VB2008Express, Serial Port wird mit einem 
FTDI Chip gemacht.

Grüße

Michal

von Peter II (Gast)


Lesenswert?

Michal schrieb:
> zeigt kein MsgBox, obwohl ich ich einen "COM2: USB Serial Port (COM2)"
> habe und im Terminalprogramm kommuniziere.

dann wird dein code nicht ausgeführt, denn die MsgBox muss immer kommen. 
Setze doch einfach mal ein Breakpoint.

von Michal (Gast)


Lesenswert?

Ok, es geht noch kleiner:

hier kommt auch kein MsgBox.
Was ist da falsch?
Nur die MainForm wird gezeigt, also wird auch geloaded
Dann sollte also MsgBox zünden?


Public Class MainForm

    Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As 
System.EventArgs)
        MsgBox("Hallo")
    End Sub
End Class

von Stryker (Gast)


Lesenswert?

Fehlt da nicht der Eventhandler bei dem es "zünden" soll?

z.B. " Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e 
As
System.EventArgs) Handles MyBase.Load"

Bin schon nen bischen länger aus Vb raus - früher war es auf jeden Fall 
mal so ;-)

von Michal (Gast)


Lesenswert?

Yess, das ist es!
"Handles" vergessen, danke, super jetzt komme schon weiter!

Grüße

Michal

von Sven H. (dsb_sven)


Lesenswert?

Wenn gesagt wird, dass der Port nicht offen ist, öffne ihn doch mit

SerialPort.Open()


Oder hab ich jetzt was nicht verstanden?

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.