com port lesen / schreiben zugriffsverletzung

Gast #1874025
Lesenswert?

Hallo,

ich benutze die serielle com schnittstelle in C (Win32 Anwendung, 
VS2010). Eigentlich ein alter Hut. Will ich jedoch schreiben oder lesen 
erhalte ich immer eine Zugriffsverletzung beim schreiben an position 
0x00000000. Für mich ist das nicht nachvollziehbar. Die Kommunikation 
funktioniert reibungslos über Terminal. Hat jemand einen Tipp?
1
serialHandle = CreateFile(L"COM5", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
2

3
  serialParams.DCBlength = sizeof(DCB);
4

5
  printf("%i\n", GetCommState(serialHandle, &serialParams));
6
  serialParams.BaudRate = 115200;
7
  serialParams.ByteSize = 8;
8
  serialParams.StopBits = ONESTOPBIT;
9
  serialParams.Parity = NOPARITY;
10
  printf("%i\n", SetCommState(serialHandle, &serialParams));
11
  sprintf_s(statusLine, 160, "Baudrate: %i kb/s\n", 115200);
12
  printf(statusLine);
13

14
  printf("%i\n", GetCommTimeouts(serialHandle, &serialTimeouts));
15
  serialTimeouts.ReadIntervalTimeout = 50;
16
  serialTimeouts.ReadTotalTimeoutMultiplier = 10;
17
  serialTimeouts.ReadTotalTimeoutConstant = 50;
18
  serialTimeouts.WriteTotalTimeoutMultiplier = 10;
19
  serialTimeouts.WriteTotalTimeoutConstant = 50;
20
  printf("%i\n", SetCommTimeouts(serialHandle, &serialTimeouts));
21

22
  char tx = 0x00;
23

24
  WriteFile(serialHandle, &tx, 1, bytesWritten, NULL);
Gast #1874072
Lesenswert?

tibo schrieb:
> Danke. Schuld war natürlich so ein verfluchtes Beispiel, wo es so drin
> stand.

das ist halt das Problem wenn man sich das zeug nur kopiert - dabei 
lernt man nichts und sucht sinnlose fehler. Wenn man es selber abtippt 
denkt man meist noch darüber nach.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren