Forum: PC Hard- und Software Bluetooth Modul HC-05 funktioniert unter XP, Probleme unter Win7


von malte (Gast)


Lesenswert?

Hallo!

Ich habe das Problem schon im Roboternetz gepostet, leider bisher ohne 
Erfolg, ich dachte ich veruchs hier auch nochmal. Vielleicht kennt sich 
ja jemand hier mit Bluetooth unter Win7 aus.

Ich verwende ein HC-05 Bluetooth Modul an einem AVR, das ist soweit kein 
Problem. Auf meinem Win XP Laptop mit integrierter BT-Hardware sehe ich 
das HC-05 Modul und kann damit eine UART Bridge etablieren, also 
einwandfrei vom µC zum PC und vom PC zum µC ASCII Daten verschicken. 
Daraus schließe ich: im Prinzip ist alles okay. Unter Win7 wird's dann 
aber seltsam:

An meinem Win7 Desktop-Recher habe ich einen USB Bluetooth V4.0 Dongle 
von LogiLink. Es klappt einen virtuellen COM-Port zu etablieren, aber 
der Port funktioniert je nach verwendeter Software 1.) garnicht, 2.) 
halb oder 3.) ganz. Das soll bedeuten:

1.) unter Matlab kann ich das serial Objekt für den entspr. COM-Port 
zwar erzeugen, wenn ich ihn aber öffnen will, behauptet Matlab, der Port 
sei nicht verfügbar (was etwas widersinnig ist, weil ich ihn mit 
"instrfind" sehe)

2.) Wenn ich den Bascom Terminal Emulator verwende, kann ich den Port 
öffnen und Zeichen an den µC schicken aber nicht vom µC empfangen(!). 
Die über BT gesendeten Zeichen kommen definitv richtig beim µC an, der 
µC selbst antwortet auch korrekt (habe das mit einem Logikanalysator 
überprüft), aber die Antwortzeichen vom µC kommen nicht "oben" in der 
Konsole an.

3.) In beide Richtungen funktioniert die Kommunikation mit TeraTerm. Ich 
kann ein Zeichen senden, meine µC-Firmware reagiert entsprechend mit der 
vordefinierten Antwort.

Ich habe das ganze jetzt rauf und runter probiert, Treiber de- und 
neuinstalliert, doch ohne jeden Einfluss auf das Problem.

Weiß jemand Rat? Ich liefere natürlich gerne weitere Infos nach, was 
wäre noch relevant?

Ganz vielen Dank!
Malte

von bluppdidupp (Gast)


Lesenswert?

Welcher Bluetooth-Stack wird denn verwendet?
Das kann man vermutlich über die Treiberdateien herrausfinden, indem man 
im Gerätemanager den entsprechenden COM-Port doppelklickt und sich unter 
Treiber > Treiberdetails anschaut welche Treiberdateien genutzt werden.
(beim Standard Microsoft-BT-Stack in der Regel nur "bthmodem.sys")

von malte (Gast)


Lesenswert?

Im Geräte-Manager taucht der BT-Dongle als "Generic Bluetooth Radio" 
auf. Der Treiber ist dort als "bthport.sys" bezeichnet und liegt in 
"system32\drivers\". Der Treiber der seriell-über-BT-Verbindung ist wie 
Du schon richtig vermutest hast "bthmodem.sys" und liegt auch im o.g. 
Verzeichnis. Also ist es wohl der Standard-Stack ... Was ergibt sich 
daraus? Vielen Dank! Gruß, Malte.

von bluppdidupp (Gast)


Lesenswert?

Der virtuelle COM-Port des Microsofts Stacks implementiert 
IOCTL_SERIAL_IMMEDIATE_CHAR nicht (d.h. TransmitCommChar() funktioniert 
damit nicht), damit kommt diverse Software nicht klar.
Eigentlich sollten Anwendungen TransmitCommChar() meiden, einige 
scheinen das aber als WriteFile()-Ersatz zu nehmen.

Ob das bei den betroffenen Anwendungen auch die Ursache ist weiß ich 
allerdings nicht. Ich würde zunächst schauen welcher BT-Stack auf der 
XP-Maschine läuft - Sofern das dort auch der Microsoft-Stack ist, wird 
das Problem eher ein anderes sein.

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.