Zumindest für einige STM32F4-MCUs ist Push-Pull + Pull-Up/Pull-Down eine gültige GPIO-Konfiguration, aber wofür würden Sie es jemals verwenden und warum? Ich nehme an , es gibt einen vernünftigeren Grund als "Ich hatte wirklich das Gefühl, dass ich diese saftigen zusätzlichen 100 µA Stromverschwendung pro Pin brauche" ...
Die Konfiguration ist im Abschnitt 8.3 des Referenzhandbuchs auf Seite 269 aufgelistet:
Grundsätzlich zeigt das Diagramm, dass die PUPDR-Bits die Pull-up- und Pull-down-Verbindungen unabhängig von dem OTYPER-Bit steuern, das zwischen Push-Pull und Open Drain umschaltet.
Wahrscheinlich würden Sie PUPDR normalerweise nicht auf etwas anderes als 00 setzen, wenn Sie die Push-Pull-Konfiguration verwenden.
Eine Situation, in der Sie dies tun könnten, wäre, wenn Sie den Pin zwischen Ausgangs- und Eingangsfunktionen umschalten würden. Möglicherweise möchten Sie, dass Pullup oder Pulldown konfiguriert werden, bevor Sie in den Eingabemodus wechseln, um zu vermeiden, dass sich der Eingang jemals in einem wirklich schwebenden Zustand befindet.
Wenn Sie sich aus irgendeinem Grund dafür entscheiden, PP zu trennen, aber PD zu verlassen, treten beim Umschalten keine Störungen auf.
Wouter van Ooijen