Showing results for 
Search instead for 
Did you mean: 

USB HID example is not enumerating on windows 10

Associate II

I am trying to program a USB HID example but when I have uploaded to debug Windows will not recognise the USB device correctly.

The windows USB device viewer tool reports the following:-


[Port2] FailedEnumeration : Unknown USB Device (Device Descriptor Request Failed)

Is Port User Connectable:     no

Is Port Debug Capable:      no

Companion Port Number:      0

Companion Hub Symbolic Link Name: 

Protocols Supported:

 USB 1.1:             yes

 USB 2.0:             yes

 USB 3.0:             no

    ---===>Device Information<===---

String Descriptor for index 2 not available while device is in low power state.

ConnectionStatus:         FailedEnumeration

Current Config Value:       0x00 -> Device Bus Speed: Full (is not SuperSpeed or higher capable)

Device Address:          0x6C

Open Pipes:              0

*!*ERROR: No open pipes!

     ===>Device Descriptor<===

bLength:              0x12

bDescriptorType:          0x01

bcdUSB:             0x0200

bDeviceClass:           0x00

*!*ERROR: Device enumeration failure


Any clues as to what the problem is?


Which STM32?

Is this a "known good" board such as Nucleo or Disco?

DFU bootloader works?


The board is an STM32H747IDISCO with screen, the included demo binaries run fine, and I have tested a blinky example also.

What is DFU bootlader?

My questions might've been formulated as "can't the problem be in hardware?". DFU bootloader is the USB bootloader, see AN2606. Either that, or working demo which works through that USB proves that there's no problem there (including cable and PC port).

So, if HW is OK, problem is in SW. Cube is open-source, so debug as usually, as your own program i.e. check clocks, GPIO settings, trace how program proceeds through the enumeration process in the USB stack/interrupt, etc. I'm afraid there's no magical solution.


hI loaded an example HID Device from the firmware  STM32H747I-DISCO\Application folder that uses the \SW4STM32 preconfigured project which uses the older toolchain. So confirm the hardware is working properly.

The problem is definitely in the software, i wish they had proper examples for CubeIDE software.