000
04.11.2004, 09:29 Uhr
Mr. T
|
Hallo!
Ich hätte ein Problemchen, mit meinem Com - Programm.
Wenn ich ein anderes Programm, daß auch auf diese Comschnittstelle zugreift ausführe und dann wieder beende, lässt sich die richtige Kommunikation erst wieder herstellen, wenn ich den Rechner neu starte. Da kommt dann nur mist raus. Andersrum geht´s aber tadellos. Also mein Programm lässt nach Beendigung (selbst, wenn ich es irregulär über das x schliesse) wieder neues Lesen und Schreiben auf dem Com zu, egal von welchem Programm aus. Kann das an dem andéren Programm liegen? Oder besser: Wie bekomme ich denn den Com sozusagen wieder richtig frei, wenn ich ihn initialisiere? So initialisiere ich:
C++: |
HANDLE Com1INI() { ////////////////////////////////COM1////////////////////////////////////
HANDLE h_com1_Bus = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0 , NULL); DCB com1_Einstellungen; COMMTIMEOUTS com1_HorchZeit;
GetCommState(h_com1_Bus, &com1_Einstellungen);
com1_Einstellungen.BaudRate = 115200; com1_Einstellungen.ByteSize = 8; com1_Einstellungen.Parity = MARKPARITY; com1_Einstellungen.StopBits = ONESTOPBIT; SetCommState(h_com1_Bus, &com1_Einstellungen);
GetCommTimeouts(h_com1_Bus,&com1_HorchZeit);
com1_HorchZeit.ReadTotalTimeoutConstant=0; com1_HorchZeit.ReadTotalTimeoutMultiplier=0;
SetCommTimeouts(h_com1_Bus,&com1_HorchZeit);
return(h_com1_Bus); }
void main() { HANDLE Syn;
Syn = Com1INI(); ... ... }
|
-- So ist das! |