Ich möchte GPIO_TypeDef und GPIO_Init verwenden, um einen bidirektionalen Port auf dem STM32F407 zu erstellen, einige Eingangspins, einige Ausgangspins.
Führe ich GPIO_Init einfach zweimal aus, einmal für die Eingangspins und einmal für die Ausgangspins, nachdem ich die GPIO_Typedef-Struktur eingerichtet habe, oder macht der zweite Lauf alles rückgängig, was der erste Lauf getan hat?
Ich weiß (zumindest bin ich mir ziemlich sicher), dass dies problemlos auf Registerebene codiert werden kann, aber ich hätte gerne die CMSIS-Methode.
Solange Sie verschiedene Pins in der GPIO_Typedef-Struktur angeben, können Sie GPIO_Init so oft ausführen, wie Sie möchten, ohne die anderen Initialisierungen rückgängig zu machen. Sie können alle Eingänge (oder Ausgänge) zusammen gruppieren und die Pin-Bezeichnungen bitweise ODER (z. B. GPIO_Pin_0 | GPIO_Pin_1) oder alle separat ausführen, indem Sie GPIO_Init für jeden aufrufen.
Vergessen Sie nicht, die GPIO-AHB-Uhr zu aktivieren mit: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOx, ENABLE); bevor Sie die Pins konfigurieren.
Tut
Scott Seidmann
Tut
Tut