Uporabljam stm32f730z8, kjer bi rad uporabil USB HS kot VCP. IDE je stm32cubeide, kateremu sem dal še eno možnost (ko je izšel sem ga stestiral in preprosta koda ni delovala, medtem ko je identična koda delala v uVision).
USB HS je nastavljan kot device only, v middleware pa imam izbran VCP. Drugih nastavitev niti nisem spreminjal. Zunanji kristal je 24 MHz, HCLK je nastavljen na 216 MHz.
Kar sem dodal kode, je samo za prižiganje par LED, ki so na PCBju, ker trenutno nimam debuggerja (bolj točno primernega kabla za priklop debuggerja).
Kolikor sem lahko, sem ugotovil, da je problem v stm32f7xx_hal_pcd.c v HAL_PCD_Init(), ki ne vrne HAL_OK in gre funkcija USBD_LL_Init() v usbd_conf.c v error handler. To funkcijo kliče USBD_Init(), ki je v usbd_core.c to pa MX_USB_DEVICE_Init(), ki je v usb_device.c.
Vzporedno v main zanki utripam z LED, kar dela brez problema.
Kje bi bila lahko težava?
Če namesto HS uporabim FS (drug par pinov in drug konektor), je bolje. Enumeracija VCP sicer ni ok, HID pa deluje.