Hallo, ich habe mir den neusten Treiber von ftdi geladen in der auch der
Header und die *.lib Datei enthalten sind. Das öffnen eines Gerätes
funktioniert ohne Probleme, jedoch möchte ich die Serial Number des
Gerätes ändern jedoch gibt die Funktion FT_EE_Program kein OK zurück.
Ich vermute das die Konfiguration der Struktur nicht stimmt aber ich hab
leider keine Idee mehr an welche stelle es hapert.
1 | int SetSerial()
|
2 | {
|
3 | FT_HANDLE ftHandle;
|
4 | FT_STATUS ftStatus;
|
5 |
|
6 | FT_PROGRAM_DATA ftData = {
|
7 | 0x00000000, // Header - must be 0x00000000
|
8 | 0xFFFFFFFF, // Header - must be 0xffffffff
|
9 | 0x00000000, // Header - FT_PROGRAM_DATA version
|
10 | 0x0403, // VID
|
11 | 0x6001, // PID
|
12 | "FTDI", // Manufacturer
|
13 | "FT", // Manufacturer ID
|
14 | "USB HS Serial Converter", // Description
|
15 | "FT000001", // Serial Number
|
16 | 44, // MaxPower
|
17 | 1, // PnP
|
18 | 0, // SelfPowered
|
19 | 1, // RemoteWakeup
|
20 | 1, // non-zero if Rev4 chip, zero otherwise
|
21 | 0, // non-zero if in endpoint is isochronous
|
22 | 0, // non-zero if out endpoint is isochronous
|
23 | 0, // non-zero if pull down enabled
|
24 | 1, // non-zero if serial number to be used
|
25 | 0, // non-zero if chip uses USBVersion
|
26 | 0x0110 // BCD (0x0200 => USB2)
|
27 | };
|
28 |
|
29 |
|
30 | ftStatus = FT_Open(0, &ftHandle);
|
31 |
|
32 | if (ftStatus == FT_OK)
|
33 | {
|
34 | ftStatus = FT_EE_Program(ftHandle, &ftData);
|
35 | if(ftStatus = FT_OK)
|
36 | {
|
37 | //Hier geht er nicht mehr rein
|
38 | }
|
39 | }
|
40 | return -1;
|
41 | }
|