Hey, ich nutze den STM32F407 USB CDC (HAL CUBEMX) und möchte den angezeigten Namen im Geräte Manager ändern. Dazu habe ich diese Zeilen in usbd_desc.c geändert jedoch ändert sich nicht der Angezeigte Name im Geräte Manager. Nur der Produkt String und Seriennummer werden übernommen. Als CDC Treiber nutze ich VCP 1.4 #define USBD_VID 1155 #define USBD_LANGID_STRING 1033 #define USBD_MANUFACTURER_STRING "MyManufacture" #define USBD_PID_FS 22336 #define USBD_PRODUCT_STRING_FS "MyProduct" #define USBD_SERIALNUMBER_STRING_FS "00000000005A" #define USBD_CONFIGURATION_STRING_FS "CDC Config" #define USBD_INTERFACE_STRING_FS "CDC Interface" #define USB_SIZ_BOS_DESC 0x0C
Der String aus der usbd_desc.c taucht im Gerätemanager bei dem Gerät in den Details unter "Vom Bus gemeldeter Name" oder so auf. Der Angezeigte Name im Gerätemanager kommt aus der Inf-Datei. Du könntest entweder die Inf-Datei pimpen oder eine Kopie mit einer anderen Product-ID verwenden. Dazu muss natürlich auch die Product-ID in der usbd_desc.c geändert werden.
danke für die schnell Antwort. Das mit der Inf-Datei habe ich bereits versucht, aber bin da auch nicht zu einem Ergebnis gekommen. An welcher Stelle müsste ich denn die Inf-Datei ändern? Wenn ich die Inf-Datei ändere ist der Treiber auch nicht mehr signiert oder nicht?
Paul schrieb: > Wenn ich die Inf-Datei ändere ist der Treiber auch nicht mehr signiert > oder nicht? Der Treiber selber ja, aber die .inf Date natürlich nicht mehr. Also bekommt man die als $Luser unter Windoof 8 und 10 nicht mehr ohne Klimmzüge installiert. Allerdings kann Windows 10 USB CDC auch ganz ohne .inf Datei, dann allerdings mit einem generischen Namen. Auch da wird der per USB übertragene Gerätenamen ignoriert.
Paul schrieb: > Das mit der Inf-Datei habe ich bereits versucht, aber bin da auch nicht > zu einem Ergebnis gekommen. Das kann nicht sein. Wenn man etwas tut, kommt man zu einem Ergebnis. Ob einem das gefällt ist eine andere Geschichte, aber ein Ergebnis bekommt man auf jeden Fall. Sonst hat man nichts getan.
Also in meiner usb_desc.c gibt es diesen Teil. Ob eine Änderung aber tatsächlich was bringt, konnte ich noch nicht testen.
1 | const uint8_t Virtual_Com_Port_StringVendor[VIRTUAL_COM_PORT_SIZ_STRING_VENDOR] = |
2 | {
|
3 | VIRTUAL_COM_PORT_SIZ_STRING_VENDOR, /* Size of Vendor string */ |
4 | USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType*/ |
5 | /* Manufacturer: "STMicroelectronics" */
|
6 | 'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0, |
7 | 'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0, |
8 | 'c', 0, 's', 0 |
9 | };
|
10 | |
11 | const uint8_t Virtual_Com_Port_StringProduct[VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT] = |
12 | {
|
13 | VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT, /* bLength */ |
14 | USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */ |
15 | /* Product name: "STM32 Virtual COM Port" */
|
16 | 'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0, ' ', 0, 'V', 0, 'i', 0, |
17 | 'r', 0, 't', 0, 'u', 0, 'a', 0, 'l', 0, ' ', 0, 'C', 0, 'O', 0, |
18 | 'M', 0, ' ', 0, 'P', 0, 'o', 0, 'r', 0, 't', 0, ' ', 0, ' ', 0 |
19 | };
|
20 | |
21 | uint8_t Virtual_Com_Port_StringSerial[VIRTUAL_COM_PORT_SIZ_STRING_SERIAL] = |
22 | {
|
23 | VIRTUAL_COM_PORT_SIZ_STRING_SERIAL, /* bLength */ |
24 | USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */ |
25 | 'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0 |
26 | };
|
mfg
Ich habe es nochmal selbst probiert. Das Ergebnis ist in den Anhängen.
Das sieht ganz gut aus. Unter welchem Pfad liegt die INF-Datei die du geändert hast? Hast du VID und PID aus den Default-Einstellungen von CubeMx übernommen und du hast auch VCP-Treiber Version 1.4 installiert?
C:\Programmex86\Stm...\Stm...\Win8 Ja Ja Ich habe die exe zur Installation des Treibers nochmal laufen lassen
Ui schrieb: > Ich habe die exe zur Installation des Treibers nochmal laufen lassen Klappt nicht. Die neue inf ist nicht signiert, das erlaubt Win 8+ nicht mehr ohne Test-Mode.
Jim M. schrieb: > Klappt nicht. Die neue inf ist nicht signiert, das erlaubt Win 8+ nicht > mehr ohne Test-Mode. Habe genau das selbe Problem, die INF-Datei ist dann nicht mehr signiert. Man hat ja auch keine Möglichkeit das zu umgehen oder? (Ausgenommen man startet im Test Modus)
Ich gebe zu es war Windows 7. Im Netz gibt es allerdings Anleitungen wie z.B. http://digital.ni.com/public.nsf/allkb/36DB8D6AC385052786257A940066A421 Dabei wird halt noch ein Zertifikat erstellt das vorher auf dem Rechner installiert werden muss.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.