GPIO-Pin hat vor Pulsweitenmodulation einen nicht definierten Zustand- Kann man das ändern?

Gast #5793851
Lesenswert?

Hallo, Achtung das nun folgende ist Konfiguration in CubeMX (STM 32F4):

Ich habe ein PWM-Signal als Ausgang eines Timers in PWM Mode 2 und One 
Pulse Mode (bedeutet einmaliger Puls von High auf LOW). Dieser Timer 
wird aber erst gestartet, nachdem ein externer Interrupt einmalig 
ausgeführt wurde und ein Taster gedrückt wird.
Da der Ausgang mit einer LED verbunden ist merke ich, dass die LED erst 
nach dem einmaligem Interrupt voll leuchtet (ausser während dem 
LOW-Puls), aber davor nur SCHWACH leuchtet.
Das ist für mich ein Hinweis, dass vor dem ersten Start des Timers der 
GPIO-Pin noch keinen definierten Pegel hat. Der soll allerdings schon 
vorher auf HIGH stehen, sonst gibt es Probelme mit dem Endgerät.... geht 
das überhaupt? Scheinbar liegt ja schon von Anfang an eine Spannung an, 
die ist aber noch nicht definiert und hoch genug...

oder die LED hat einen Schaden, weil sie auch mit kurzem Flackern 
reagiert, während man den Ausgang über einen BNC-Adapter an das Endgerät 
anschließt..

Ausserhalb der Timer-Konfiguration mit "PWM Mode 2" und "CH Polarity: 
LOW" ist der Ausgang auch mit "Pull-up" konfiguriert
#5794009
Lesenswert?

Du hast ja bereits den Timer konfiguriert, und jetzt machst du folgendes

* Du machst in der Chip-Ansicht einen rechts-Klick auf deinen Timer-Pin 
und wählst Pin-Stacking.

* Dann einen links-Klick auf den Pin und zusätzlich zum Timer einen 
GPIO-Output hinzufügen.

Jetzt kannst du den GPIO/Timer-Pin wie gewünscht direkt nach dem 
Programmstart initialisieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren