Ich habe ein Projekt, das mit STM32F1s und STM32F4s kompatibel sein muss. Ich beginne mit einem grundlegenden Projekt, das GPIOs verwenden kann und versuche nun, USB-HID-Unterstützung zu bekommen. Ich habe USB HID funktioniert auf STM32F4s mit einem anderen Projekt mit den Standard-Peripherietreibern und USB OTG, aber habe eine schwierige Zeit mit den HAL-Treibern. Egal, was ich versucht habe, das USB-Gerät wird weiterhin als unbekanntes Gerät in Windows angezeigt. Wo kann ich am besten mit dem Debuggen dieses Problems beginnen? Wenn man den Code mit einer SWD durchgeht, sieht es so aus, als ob das Board so zu funktionieren scheint, wie es sollte. Soweit ich das beurteilen kann, sind die Endpunkte und Deskriptoren für HID korrekt.STM32 Wechsel von Standard-Peripherie zu HAL. USB-Gerät erscheint immer als "Unbekanntes Gerät" in Windows
0
A
Antwort
0
Verwenden Sie STM32CubeMX, um USB für Sie einzurichten. Dann müssen Sie die Größe des Heapspeichers ändern, da der Standardwert nicht groß genug ist. Aus irgendeinem Grund können Sie die Heap-Größe von STM32CubeMX nicht ändern. Um dies zu ändern, müssen Sie die Windows Start-Datei (startup_stm32f4 ..... s) und suchen Sie die Zeile bearbeiten:
Heap_Size EQU 0x00000200
und ändern Sie den Wert zu einem größeren, zum Beispiel:
Heap_Size EQU 0x00002000
Neben SPL und HAL ab Dezember 2015 existieren LL - Low Level Treiber. – imbearr