Forum: PC Hard- und Software RS232 Schnitstelle zu Bluetooth Adapter


von Frank (Gast)


Lesenswert?

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

von Bernd H. (geeky)


Lesenswert?

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?

von Holger (Gast)


Lesenswert?

@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.

von Frank (Gast)


Lesenswert?

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.

von Bernd H. (geeky)


Lesenswert?

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
}

von Frank (Gast)


Lesenswert?

Jetzt klappt es danke

von Holger H. (holger-h-hennef) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.