HAL_GPIO_Init() in modernem C++ verwenden (STM32)

English Deutsch

In modernem C++ können Sie Structs wie GPIO_InitTypeDef direkt initialisieren, was den Code wesentlich übersichtlicher und fehlerresistenter macht. Das folgende Beispiel konfiguriert PA8 eines STM32 im Alternativfunktions-Modus 1 (TIM1-Ausgang).

gpio_init_struct.cpp
GPIO_InitTypeDef pinInit = {
  .Pin = GPIO_PIN_8,
  .Mode = GPIO_MODE_AF_PP,
  .Pull = GPIO_NOPULL,
  .Speed = GPIO_SPEED_FREQ_VERY_HIGH,
  .Alternate = GPIO_AF1_TIM1
};
HAL_GPIO_Init(GPIOA, &pinInit);

Im Gegensatz zur alten, wesentlich umständlicheren Methode:

gpio_init_verbose.cpp
GPIO_InitTypeDef pinInit;
pinInit.Pin = GPIO_PIN_8;
pinInit.Mode = GPIO_MODE_AF_PP;
pinInit.Pull = GPIO_NOPULL;
pinInit.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
pinInit.Alternate = GPIO_AF1_TIM1;
HAL_GPIO_Init(GPIOA, &pinInit);

Check out similar posts by category: C/C++, Electronics, STM32