Hallo, ich möchte mit VB ein Board mit Virtual COM Port ansprechen. Wie im Bild zu sehen, wird der Port erkannt (COM5), aber beim Öffnen kommt: IOException: Ein an das System angeschlossenes Gerät funktioniert nicht. Mit einem Terminalprogramm funktioniert es, am Virtual COM Port Treiber liegt es also nicht. Was kann es sein? Time-Out Problem? Hier der Code: SerialPort.PortName = cmbPort.Text SerialPort.BaudRate = cmbBaud.Text SerialPort.Parity = IO.Ports.Parity.None SerialPort.StopBits = IO.Ports.StopBits.One SerialPort.DataBits = 8 SerialPort.Open() Danke! Lothar
:
Verschoben durch Moderator
>> Hier der Code: > IOException: Ein an das System angeschlossenes Gerät funktioniert nicht. Schön. Und an welcher Zeile tritt der Fehler auf? Ist der Port von einer anderen Software belegt? Wird er zweimal von deiner Software geöffnet? Wird der Text der Comboboxen automatisch in Zahlen konvertiert? Funktioniert das ganze mit dem echten COM-Port? Kann ein anderes VB-Programm auf die Schnittstelle zugreifen? Ralf
Natürlich bei: SerialPort.Open() Inzwischen habe ich als Test diesen Aufruf in eine DLL ausgelagert, und damit funktioniert es in VB. Ich verstehe aber nicht, warum es in VB direkt nicht geht. Kann man das irgendwie rausfinden bzw. debuggen?
>SerialPort.BaudRate = cmbBaud.Text
wird da nicht ein Integer erwartet? Du übergibts ja einen String. Da
müsste doch auch der Compiler meckern, oder?
Timmo H. schrieb: >>SerialPort.BaudRate = cmbBaud.Text > wird da nicht ein Integer erwartet? Du übergibts ja einen String. Da > müsste doch auch der Compiler meckern, oder? Daran liegt es nicht. Ich nehme an dieses .NET Objekt ist "überladen" und nimmt Integer oder Strings. Aber auch direkt mit Integer 9600 bleibt das Problem. Anbei ein Screenshot vom Debugger. Es muss ein Time-Out Problem sein.
Das riecht für mich ziemlich stark nach einem Treiber-Problem. Da set_DtrEnable fehlschlägt wird der Treiber wohl Probleme mit SerialPort.DtrEnable=false haben. ...bzw. IOCTL_SERIAL_CLR_DTR und/oder IOCTL_SERIAL_SET_DTR nicht richtig implementiert haben. Kann mit Tools wie Portmon überprüft werden: http://technet.microsoft.com/de-de/sysinternals/bb896644.aspx
WOran könnte es liegen das der MikroController nicht antwortet? Bitte helft mit ;)
Im Codeblocks-Projectfile ist leider nicht der Code drin. Wenn dann brauchen wir schon deine C, und Header-Files. Und wenn der µC nicht antwortet, kann das auch am µC liegen, aber den Code haben wir ja nicht.
ohh sorry .Hier ist der Code ... Auf dem Terminalprogramm Tera Term läuft es. Der uC reagiert auf den Befehl @ru und schickt dann Daten zurück.Soweit die Theorie. Nachdem ich den Befehl sende Empfange ich keine Daten woran liegt das? Bitte um eure Hilfe...
In vergleichbaren Situationen habe ich ein spezielles Bitmuster periodisch rausgeschrieben ( 0x55 oder 0xAA ) und am OSZI geschaut, was auf der Leitung drauf ist (einschliesslich Start-Stop-Bits). Und dann sieht man gleich, ob es an der Empfänger- oder Senderseite hakt.
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.