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
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.
Kannst Du den Code denn nicht so posten, dass man die Sache einfach ausprobieren kann? Z.B. Projekt gezippt? Aber bitte auf das Minimum abgespeckt, um das Verhalten zu testen.
1. Nach einem Close() sollte eine gewisse Zeit gewartet werden, bis der Port wieder geöffnet wird. http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.close.aspx 2. BaudRate kann auch ohne Close()/Open() geändert werden
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.