diff --git a/radio/src/targets/common/arm/stm32/pwr_driver.cpp b/radio/src/targets/common/arm/stm32/pwr_driver.cpp index fb5b7e49e..d5829c230 100644 --- a/radio/src/targets/common/arm/stm32/pwr_driver.cpp +++ b/radio/src/targets/common/arm/stm32/pwr_driver.cpp @@ -70,6 +70,15 @@ void pwrInit() #endif GPIO_InitStructure.GPIO_Pin = PCBREV_GPIO_PIN; GPIO_Init(PCBREV_GPIO, &GPIO_InitStructure); + #if defined(PCBREV_TOUCH_GPIO_PIN) + #if defined(PCBREV_TOUCH_GPIO_PULL_UP) + GPIO_ResetBits(PCBREV_TOUCH_GPIO, PCBREV_TOUCH_GPIO_PIN); + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + #endif + GPIO_InitStructure.GPIO_Pin = PCBREV_TOUCH_GPIO_PIN; + GPIO_Init(PCBREV_TOUCH_GPIO, &GPIO_InitStructure); + #endif + hardwareOptions.pcbrev = PCBREV_VALUE(); #endif } diff --git a/radio/src/targets/horus/hal.h b/radio/src/targets/horus/hal.h index 89492e057..8194e6b53 100644 --- a/radio/src/targets/horus/hal.h +++ b/radio/src/targets/horus/hal.h @@ -419,6 +419,7 @@ #define PCBREV_GPIO_PIN (GPIO_Pin_7 | GPIO_Pin_8) // PH.07 | PH.08 #define PCBREV_TOUCH_GPIO GPIOA #define PCBREV_TOUCH_GPIO_PIN GPIO_Pin_6 // PA.06 + #define PCBREV_TOUCH_GPIO_PULL_UP #define PCBREV_VALUE() ((GPIO_ReadInputDataBit(PCBREV_GPIO, GPIO_Pin_7) + (GPIO_ReadInputDataBit(PCBREV_GPIO, GPIO_Pin_8) << 1)) * GPIO_ReadInputDataBit(PCBREV_TOUCH_GPIO, GPIO_Pin_6)) #else #define PCBREV_RCC_AHB1Periph RCC_AHB1Periph_GPIOI