Hallo zusammen,
Ich versuche derzeit unter C die COM-Schnittstelle anzusprechen. Ich habe zwei Rechner mit einem Nullmodem-Kabel verbunden. Bevor ihr mich jetzt auf Google oder auf einen anderen Beitrag verweist, lest mein Problem erst mal denn das ist etwas ganz spezielles.
Erst mal der Code mit dem ich die Schnittstelle öffene
So lese ich von der Schnittstelle:Code:HANDLE hSerial = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE,0,0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);
Und so schreibe ich auf die Schnittstelle:Code:char szBuff[1]; int i = 0; char readBuffer[128]; DWORD dwBytesRead = 0; while (szBuff[0] != 'A') { ReadFile(hSerial,szBuff,1,&dwBytesRead,NULL); dwBytesRead = 0; } dwBytesRead = 0; for (i=0; i<128;i++) { ReadFile(hSerial,&readBuffer[i],1,&dwBytesRead,NULL); dwBytesRead = 0; }
Das Problem ist jetzt, dass jedes 15.Byte falsch übertragen wird. Alle dazwischen liegenden Bytes werden korrekt übermittelt. Ich hab jetzt die Vermutung, dass das etwas mit dem FIFO-Puffer zu tun hat, der dabei verwedet wird. Kann das sein? Weiß jemand was man dagegen machen kann?Code:char writeBuffer[128]; int i = 0; for (i = 0; i < 128; i++) { writeBuffer[i] = 'A'; } DWORD dwBytesWrite = 0; WriteFile (hSerial, writeBuffer,128,&dwBytesWrite,NULL);
Gruß
Thomas







Zitieren

Lesezeichen