Ich möchte einige Bytes mit STM32F7-Erkennung über USB CDC (HS oder FS) an meinen Laptop senden . Ich habe das von keil microvision bereitgestellte virtuelle COM-Beispiel getestet, sodass die Hardware in Ordnung ist, aber ich muss es mit STM32CubeMX tun. Die Bibliotheken sind unterschiedlich und das größte Glück, das ich hatte, war, Virtual Com Port im Geräte-Manager zu sehen. aber Hyperterminal oder Putty können es nicht erkennen und es werden keine Daten gesendet oder empfangen. Ich habe meinen Beispielcode-Link und die Uhrkonfiguration angehängt, also schätze ich, wenn jemand helfen und mir sagen könnte, was das Problem ist.
Endlich habe ich die Lösung gefunden. Das Problem hing mit der Heap-Größe zusammen. Ich habe die Heap-Größe in der Startdatei von 200 Bytes auf 400 Bytes erhöht, es funktioniert also wie ein Zauber. Aber noch ist nicht das ganze Problem gelöst. Wenn ich Keil rtx verwende, funktioniert es nicht mehr. Das vorherige Problem taucht wieder auf. Ich glaube, es geht um die Stapelgröße in der RTX-Konfiguration, aber mit einigen Änderungen funktioniert es immer noch nicht.
Edit: Nach vielen Herausforderungen hat es geklappt. In diesem Link werden einige Tipps zur Verwendung von RTOS-RTX mit Stm32CubeMX beschrieben. Eines der Dinge, die Sie tun müssen, ist, die Priorität des SysTick-Timers auf den niedrigsten Wert einzustellen. Dies steht im Konflikt mit USB-Interrupts. Um USB-CDC mit RTOS-RTX in Stm32CubeMX zu verwenden, müssen Sie die Priorität des globalen USB-OTG-Interrupts niedriger als den SysTick-Timer einstellen. Wenn Sie also die SysTick-Priorität auf 14 und USB-OTG auf 15 setzen, wird das Problem gelöst.
Kohlschmied
Bence Kaulics