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
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")
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.