Serielle Schnittstelle in VB2005

OP #994095
Lesenswert?

Hallo.
Ich hab ein kleines Problem mit dem schließen des Com Ports in VB2005.
Ich möchte mit meinem Programm eine Art "Sendersuchlauf" durchführen um 
von dem am Comport angeschlossenen XBee die Baudrate herauszufinden. Das 
ganze funktioniert schon ganz gut. Ich beginne mit 
serialport.write("+++") auf 1200Baud und erhöhe dann die Baudrate 
schrittweise. Wenn die Baudrate der des XBEE entspricht bekomme ich ein 
OK.
Sobald ich dieses OK gefolgt von 13 in Byte (was der Enter Taste 
entspricht) bekomme, schicke ich die init (ATBD3, usw.) für 9600Baud und 
möchte die Baudrate des PC´s siehe Codeschnippsel auf 9600 ändern. 
Leider hängt sich das Programm nach dem serialport.close() befehl auf 
sobald einmal daten empfangen worden sind.

Bitte um Hilfe!

Public Sub config_serial()


        If serialPort.IsOpen Then serialPort.Close()


        Try
            With serialPort
                .PortName = cbbCOMPorts.Text
                .BaudRate = 9600
                .Parity = IO.Ports.Parity.None
                .DataBits = 8
                .StopBits = IO.Ports.StopBits.One
                .ReadTimeout = 2000
            End With

            serialPort.Open()
        Catch ex As Exception
            MsgBox("Com Port konnte nicht geöffnet werden")
        End Try


    End Sub
OP #997906
Lesenswert?

Sobald die Baudrate vom PC mit der Baudrate des XBEE übereinstimmt, 
bekomme ich auf mein vom PC aus gesendetes +++ vom XBEE die antwort 
"OK"+ Enter
Dann weiß mein Programm das der XBEE momentan auf beispielsweise 19200 
Baud konfiguriert ist.

Zum Empfangen verwende folgende Routine

Dim Empfang in Byte

Empfang = serialport.readbyte()

If Empfang = 13 then xbee_gefunden()

ansonsten Baudrate erhöhen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren