Hallo zusammen Was ich möchte: Eigentlich ganz simpel nur ein PWM Signal am Pin eines uC. (Duty Cycle ist erstmal egal) Was ich gemacht habe: Ich verwende den STM32F070CB mit HAL. Mit Cube hab ich mir den Initialisierungscode generieren lassen. (PB9 / TIM17_CH1) Das ganze starte ich dann mit dem Befehl HAL_TIM_PWM_Start(&htim17, TIM_CHANNEL_1); Nur leider tut sich nichts. Wenn ich aber den Code im Debugger laufen lasse, kann ich meinen PWM am Ausgang mit dem Oszi messen. Ich vermute, ich habe irgendetwas bei der Initialisierung vergessen, das der Debugger von sich aus macht, vermutlich irgendeine CLK Zuweisung. Was ich noch versucht habe ist mit den Makros __HAL_RCC_GPIOB_CLK_ENABLE(); und __HAL_RCC_TIM17_CLK_ENABLE(); den Clock des Timermoduls zu aktiveren, hat aber auch nichts gebracht. Hat jemand eine Vermutung an was das liegen könnte? Ich habe meine Einstellungen im Cube und das Main file angehängt Grüsse
Hast du die GND Leitung deines Messgerätes mit dem Mikrocontroller verbunden?
Ich hab zwar mit dem F070 keine Erfahrungen, aber versuch mal mit "auto-reload preload" enable.
Harry L. schrieb: > Ich hab zwar mit dem F070 keine Erfahrungen, aber versuch mal mit > "auto-reload preload" enable. Damit hat es garantiert nichts zu tun, weder beim F070, noch bei irgendeinem anderen STM32. Ich tippe mal auf MOE-Bit im BDTR vom TIM17 nicht gesetzt, dass lässt CubeMX nämlich (mWn) bei Timern mit Deadtime-Funktion weg. Probier mal ein TIM17->BDTR |= TIM_BDTR_MOE; Für die Erklärung siehe S.464 im Reference-Manual RM0360. Wenn es nicht (bzw. nicht nur) am MOE-Bit liegt, dann tippe ich auf fehlende GPIO-Konfiguration (Output Alternate-Function, Push-Pull, etc), da ich die bei dir nirgends erkennen konnte. Auch da hilft ein Blick ins Handbuch. Ich würde unbedingt empfehlen zuerst mal für die Peripherie und insbesondere für die Timer CubeMX und HAL wegzulassen und direkt über die Register zu programmieren. Es gibt von ST einen Haufen Beispielcode, genannt "STM32F0 Snippets" den du auf deren Webseite herunterladen kannst und der explizit für die F070-Reihe geschrieben ist. Dazu dann das entsprechende Kapitel im Reference-Manual lesen und du verstehst was das Ding kann und wie die Dinge zusammenhängen. Für die ersten Gehversuche mit PWM würde ich mir aber einen Timer nehmen, der die Break- und Deadtime-Funktionalität nicht hat. Das ist einfach übersichtlicher im Handbuch (und natürlich auch bei CubeMX).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.

