Hallo,
ich versuche ein Programm zu schreiben
mit dem ich ein INT-Wert abfagnen kann, der von einem Atmega gesendet
wurde.
Das ganze versuche ich mit Createfile
1 | #include <iostream>
|
2 | #include <Windows.h>
|
3 |
|
4 | using namespace std;
|
5 |
|
6 | HANDLE hSerial;
|
7 |
|
8 | bool init_com();
|
9 |
|
10 | int main()
|
11 | {
|
12 | DWORD iBytesWritten;
|
13 | DWORD iBytesReceived;
|
14 | int i = 0;
|
15 | unsigned char ucMsg = 0x24;
|
16 | char daten[10000];
|
17 | int j = 0;
|
18 | i = init_com();
|
19 | if(i == 1)
|
20 | {
|
21 | cout << "Initalisierung erfolgreich\n";
|
22 | }
|
23 |
|
24 | if(i == 0)
|
25 | {
|
26 | cout << "Initalisierung fehlgeschlagen\n";
|
27 | }
|
28 |
|
29 |
|
30 |
|
31 | system("pause");
|
32 | return 0;
|
33 | }
|
34 |
|
35 | bool init_com()
|
36 | {
|
37 | DCB dcb;
|
38 | WCHAR* portname = L"COM3";
|
39 |
|
40 | hSerial = CreateFile(portname, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
41 |
|
42 |
|
43 | GetCommState (hSerial, &dcb);
|
44 | dcb.BaudRate = 9600;
|
45 | dcb.ByteSize = 8;
|
46 | dcb.Parity = NOPARITY;
|
47 | dcb.StopBits = ONESTOPBIT;
|
48 | SetCommState (hSerial, &dcb);
|
49 |
|
50 | if(hSerial == INVALID_HANDLE_VALUE)
|
51 | {
|
52 | return false;
|
53 | }
|
54 | else
|
55 | {
|
56 | return true;
|
57 | }
|
58 | }
|
Als Nachricht bekomme ich erfolgreich verbunden. Aber wie kann ich jetzt
daraus Werte lesen ?
Kann man das überhaubt mit Createfile machen oder musst ich QT o.ä.
benutzen?