Hallo zusammen,
ich habe hier ein MCBSTM32E von Keil, mit dem ich über den USB Port
kommunizieren will. Das mitgelieferte Beispiel von Keil funktioniert
auch bestens, nur wenn ich jetzt versuche das umzuschreiben komme ich
nicht ganz zurecht.
Ich habe folgenden Code:
1 | DWORD cnt;
|
2 | BYTE OutReport[2];
|
3 | OutReport[1] = 0x01;
|
4 |
|
5 | ...
|
6 |
|
7 | h_device = CreateFile(p_interface_detail_data->DevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, (LPSECURITY_ATTRIBUTES)NULL, OPEN_EXISTING, 0, NULL);
|
8 | HidD_GetProductString(h_device, buffer, 1000);
|
9 | for(x=0; x<NameLng; x++){
|
10 | if(buffer[x] == name[x])
|
11 | equal = 1;
|
12 | else
|
13 | equal = 0;
|
14 | }
|
15 | if(equal == 1){
|
16 | printf("Name: %ls\n", buffer);
|
17 | if (!WriteFile(h_device, OutReport, sizeof(OutReport), &cnt, NULL)) {
|
18 | GetLastErrorText(sz_err, 256);
|
19 | printf("[ERR] %s\n", sz_err);
|
20 | }
|
21 | }
|
WriteFile liefert mir nur immer den Fehler 87 Invalid Parameter zurück,
nur welcher der Parameter ist falsch? Ich verwende die gleichen
Parameter wie in dem funktionierenden Beispiel.
Achja mit der For-Schleife überprüfe ich, ob der gefundene Name der Name
meines Boards ist, um so auf das richtige Handle zu kommen.
Hoffe ihr könnt mir weiterhelfen.
Gruß
Mathias