STM32F303 STM32CubeMX __HAL_TIM_SetCompare Makro ist nicht vorhanden

Ich verwende CubeMX, um Code für meinen NucleoF303 zu generieren. Ich bin etwas verwirrt, wie man die Impulsbreite eines Timers im PWM-Modus einstellt.

Zuvor (unter Verwendung von F4) gab es ein __HAL_TIM_SetCompare-Makro in der Datei stm32fxxx_hal_tim.h.

Aber das gibt es nicht. Soll ich die Einschaltdauer anders einstellen?

Natürlich kann ich die CCRx-Register einfach direkt setzen. Das funktioniert. Aber wenn ich eine HAL mit viel Abstraktion verwenden werde, wie es Cube zu sein scheint, würde ich zumindest gerne wissen, wie ich sie verwenden möchte. Auch wenn ich es nicht tue.

Nicht wirklich ein Code für diese Frage. Aber hier ist mein aktuelles Commit, falls es nützlich ist: https://github.com/c-herring/Sumo2017_NucleoF303/tree/221dc57a305ccd64a4b98726df3cce02720b280b

Beifall!

Nun, Sie können die STM32CubeF3 HAL-Beschreibung überprüfen, aber soweit ich weiß, gibt es nichts für Sie, außer den gesamten Kanal neu zu konfigurieren. __HAL_TIM_SetCompareDadurch wird das CCRx-Register ohnehin direkt gesetzt. Also meiner Meinung nach ist es jetzt in Ordnung.

Antworten (1)

Zuvor (unter Verwendung von F4) gab es ein __HAL_TIM_SetCompare-Makro in der Datei stm32fxxx_hal_tim.h.

Das ist tatsächlich schon einige Zeit her. Ich habe in einem alten Projektverzeichnis eine Kopie von STM32CubeF4 V1.6.0 (veröffentlicht am 28. Mai 2015) gefunden, die bereits die folgende Alias-Definition enthält

Inc/Legacy/stm32_hal_legacy.h:#define __HAL_TIM_SetCompare            __HAL_TIM_SET_COMPARE

Noch tiefer graben, heißt es in der Beschreibung von 1.4.0

STM32CubeF4 Firmwarepaket V1.4.0 / 26. Dezember 2014

Hauptänderungen

Wartungsversion zur Behebung bekannter Fehler und Implementierung mehrerer Verbesserungen

Umbenennung von HAL-Makros und -Literalen, um die Kompatibilität mit allen STM32-Serien sicherzustellen, Abwärtskompatibilität wird dank der neu hinzugefügten Datei stm32_hal_legacy.h unter /Inc/Legacy beibehalten

Es muss also die Zeit gewesen sein, in der __HAL_TIM_SetComparezugunsten von verworfen wurde __HAL_TIM_SET_COMPARE.

Sie sollten trotzdem die Alias-Definition erhalten, da alle HAL-Header stm32_hal_legacy.h.