000
27.05.2004, 14:45 Uhr
~mat
Gast
|
Hallo, ich habe folgendes Problem: Ich sende eine Zahl an die serielle Schnittstelle und bekomme darauf sofort eine Antwort von dem dort angeschlossenen Controller. Dieses Signal ist auch tatsächlich vorhanden, da ich es am Oszilloskop sehe und mit einem anderen Programm (RS232Hex30.) auch ohne Probleme einlesen kann. Das Senden klappt wunderbar mit dem Write-Befehl, bloß bleibt er beim ?Read? hängen und wartet endlos auf ein Zeichen, welches eigentlich schon da sein sollte. Mein Betriebssystem ist Windows 98 und ich programmiere mit Microsoft C++ 6.0.
Vielleicht weiß jemand von Euch was ich falsch mache, oder hat eine Alternative......
Vielen Dank!!
Matthias
C++: |
hFile=CreateFile("\\\\.\\COM2",GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if(hFile==INVALID_HANDLE_VALUE)return 0; memset(&sDcb,0,sizeof(sDcb)); sDcb.DCBlength = sizeof(sDcb); sDcb.BaudRate = 9600; // Baudrate sDcb.fParity = FALSE; sDcb.fBinary = TRUE; sDcb.Parity = NOPARITY;// Kein Paritybit sDcb.StopBits = ONESTOPBIT; sDcb.fOutxCtsFlow = FALSE; sDcb.fOutxDsrFlow = FALSE; sDcb.fDtrControl = DTR_CONTROL_DISABLE; sDcb.fDsrSensitivity = FALSE; sDcb.fAbortOnError = FALSE; sDcb.ByteSize = 8;
unsigned char szZeichen[1]; unsigned char szZahl[3]; szZahl[0]=0x2B; szZahl[1]=0xE4; szZahl[2]=0x00;
WriteFile(hFile,&szZahl,3,&dwWrite,NULL );
ReadFile(hFile,&szZeichen,1,&dwRead,NULL );
cout<<szZeichen; CloseHandle(hFile);
|
Bearbeitung von Pablo: |
Bitte, cpp tags selber benutzen
|
Dieser Post wurde am 27.05.2004 um 19:43 Uhr von Pablo editiert. |