PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : COM-Schnittstelle ansprechen



TK1985
03.08.2006, 20:50
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


HANDLE hSerial = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE,0,0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);

So lese ich von der Schnittstelle:

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;
}

Und so schreibe ich auf die Schnittstelle:

char writeBuffer[128];
int i = 0;

for (i = 0; i < 128; i++) {
writeBuffer[i] = 'A';
}

DWORD dwBytesWrite = 0;
WriteFile (hSerial, writeBuffer,128,&dwBytesWrite,NULL);


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?

Gruß
Thomas

pebisoft
08.08.2006, 20:48
FIFO-Puffer...

weisst du überhaupt, was ein "FIFO-Puffer" ist?

TK1985
08.08.2006, 22:36
FIFO-Puffer...

weisst du überhaupt, was ein "FIFO-Puffer" ist?

Ja mir ist klar was ein "First-In-First-Out"-Puffer, eine Queue oder auf deutsch eine Warteschlange ist. Aber solche Fragen die mein Allgemeinwissen testen sollen nützen mir jetzt auch nicht viel. Aber ist mittlerweile eh egal, hab das Problem schon selber gelöst.[/b]

ceekay
08.08.2006, 22:42
Aber ist mittlerweile eh egal, hab das Problem schon selber gelöst

Wäre schön wenn du deine Lösung posten würdest, vielleicht hilf es nochmal jemanden der ein ähnliches Problem hat.

mx3
16.09.2006, 20:43
Hi!

Hab mir diesen Temperatursensor nachgebaut und fungzt wunderbar
Vieleicht ist das was für dich
http://www.franksteinberg.de/lm75.htm

mfg,MX3

Sorry hab mein Text in den falschen Beitrag gepostet
vieleicht kanns trotzdem wer gebrauchen