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