From 3722de987f8e19dc41a61bdfd2f62fa591ecbd6c Mon Sep 17 00:00:00 2001 From: MRC3742 Date: Thu, 11 Jan 2024 20:24:42 -0500 Subject: [PATCH] fix(x10-express): Touch Screen Mod PCBREV check failing in cold temps(#4529) --- radio/src/targets/common/arm/stm32/pwr_driver.cpp | 9 +++++++++ radio/src/targets/horus/hal.h | 1 + 2 files changed, 10 insertions(+) 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