Forum: Mikrocontroller und Digitale Elektronik Kommunikation PIC - vb.net


von Martin R. (rama123)


Lesenswert?

Hallo,

ich habe einen PIC mit USB über den ich Daten an ein vb.net Programm 
schicke. Das Funktioniert auch alles prima.
Jetzt habe ich mein vb Programm so erweitert, dass es sich automatisch 
mit dem Kontroller verbindet. Hierfür frage ich einmal die Sekunde die 
vorhandenen COM-Ports ab und wenn der richtige dabei ist verbinde ich 
mich mit ihm.
Um zu überprüfen ob die Verbindung noch besteht schicke ich anschließend 
Daten zum PIC, wenn diese nicht mehr gesendet werden können ist die 
Verbindung weg und das vb Programm beendet die Verbindung.
Auch das Funktionert noch.
Wenn ich den USB-Stecker rausziehe trennt sich die Verbindung und wenn 
ich den Stecker wieder reinstecke verbinden sich PIC und das vb Programm 
auch wieder.
Wenn ich allerdings den Stecker rausziehe und schnell wieder reinstecke 
findet das vb Programm den COM Port nicht. Im Gerätemanager taucht er 
allerdings auf.
Ich hoffe es kann mir jemand helfen.

Gruß Martin
1
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
2
        Dim i As Integer
3
4
        ' Com-Ports suchen und laden
5
        If FlagsConnect = 0 And FlagsComFound = 0 Then
6
            Me.comboPort.Items.Clear()
7
            For i = 0 To My.Computer.Ports.SerialPortNames.Count - 1
8
                Me.comboPort.Items.Add((My.Computer.Ports.SerialPortNames.Item(i) & "     ").Substring(0, 5).Trim)
9
            Next
10
            Me.comboPort.Sorted = True
11
            Dim LoadComPortDesc As New System.Threading.Thread(AddressOf LoadComPortDescription)
12
            LoadComPortDesc.Start()
13
        End If
14
15
        ' Daten an Pic senden, wenn diese nicht gesendet werden können Verbindung trennen
16
        If FlagsConnect = 1 Then
17
            Try
18
                COM.Write(Data, 0, 3)
19
            Catch ex As Exception
20
                Disconnect()
21
            End Try
22
        End If
23
24
        ' wenn richtiger COM Port gefunden, Verbindung aufbauen
25
        If FlagsComFound = 1 And FlagsConnect = 0 Then
26
            Connect()
27
        End If
28
    End Sub

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.