Hallo Miteinander Ich verwende nun seit längerer Zeit eine eigens Programmierte dll (c++ CreateFile(...); TransmitCommChar) mit der ich auf die Serielle Schnittstelle des PC's auf meine Anwendungen zugreife. Bislang hatte ich damit auch keine Probleme. Jetzt will ich vom Pc zum Microcontroller über einen Bluetooth Adapter zugreifen. Wenn der Adapter (Acer BT-900) mit dem BT-222 verbunden hat und ich Hyperterminal aufrufe klappt die Verbindung. öffne ich die gleiche Comx mit meiner dll, dann geht kein Byte raus oder rein obwohl die Com fehlerfrei geöffnet wurde, dies auch am BT-222 durch eine Leuchtende LED angezeit wird. Ich finde das sehr merkwürdig. Der Rückgabestatus von GetLastError(); in TransmitCommChar(..); meldet falsche Funktion. Kann mir da jemand Helfen? Gruß Frank
Vielleicht implementiert der Bluetooth-Treiber IOCTL_SERIAL_IMMEDIATE_CHAR nicht (TransmitCommChar() entspricht einem Aufruf von DeviceIoControl mit IOCTL_SERIAL_IMMEDIATE_CHAR). Auf WriteFile umsteigen ist keine Alternative?
@Bernd -------------------------------------------------- Hallo ! Hast du das Pinning von dem BTM222 mini da ?. Frage: Was ist das bitte für ein Led-Pin ? is das DSR ??? (Dann ist das evtl. nur ein Handschake Problem) ----------------------------------------------- Kannst du am BT-Modul config via AT++ und so machen. Als AT Command Set. mit z.B AT? CR OK> und so ... ------------------------------------------------------ Hast du die Doku. vom AT Command Set ??. Und das I/O Pinning ? ------------------------------------------------------ RTS,CTS; DTR DSR; /CTS am BTM222 auf low. (low-activ) Mach auch auf beiden Stationen PC & BTM-222 die BaudRate mal gleich z.B 9600 und so... + in Sytem-Steuerung > BTCom 9600, 8 bit,1 ..Handschake off. Gruss Holger.
DeviceIoControl probir ich mal Die LED 1x Blinkt nicht verunden Dauerlicht Verbunden 1x Daten senden Empfangen Mit Hyperterminal funktioniert alles, das wundert mich ja Das sind schon mal gute tips.
TransmitCommChar() mit WriteFile nachgebildet (ungetestet):
1 | BOOL TransmitCommCharFake( HANDLE hCom, char cChar) |
2 | { |
3 | DWORD bytesWritten; |
4 | WriteFile(hCom, &cChar, 1, &bytesWritten, NULL); |
5 | |
6 | return (bytesWritten==1); |
7 | } |
Super Such mal nach der Stackübergabe von DLL to the APP EXE Tip: EXE GET ONE 1Byte via @Pull Value out of Stack from DLL. ------------------ 1 Byte DLL push 32Bit Stack Use a Struct is better, Infos to solve that Problem. -------------------------------------------------------------- I have National Instrument Info Tool on CD. Good Luck. Bye Holger.
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.