#ifndef HAL_GPIO #define HAL_GPIO #include "stm32g431xx.h" // I/O MODES #define INPUT_MODE ((uint32_t) 0x00) // input mode #define OUTPUT_MODE ((uint32_t) 0x01) // general purpose output mode #define ALT_FUNC_MODE ((uint32_t) 0x02) // alternative function mode #define ANALOG_MODE ((uint32_t) 0x03) // alanog mode (reset state) // CLOCK ENABLING #define GPIO_CLOCK_EN_GPIOA (RCC->AHB2ENR |= (1 << 0)) #define GPIO_CLOCK_EN_GPIOB (RCC->AHB2ENR |= (1 << 1)) #define GPIO_CLOCK_EN_GPIOC (RCC->AHB2ENR |= (1 << 2)) #endif