diff --git a/baseflight.uvproj b/baseflight.uvproj
index a6d0cd2ceb..67f38c2955 100755
--- a/baseflight.uvproj
+++ b/baseflight.uvproj
@@ -797,11 +797,6 @@
1
.\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
-
- stm32f10x_gpio.c
- 1
- .\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
-
stm32f10x_flash.c
1
@@ -1601,11 +1596,6 @@
1
.\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
-
- stm32f10x_gpio.c
- 1
- .\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
-
stm32f10x_flash.c
1
@@ -2708,11 +2698,6 @@
1
.\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
-
- stm32f10x_gpio.c
- 1
- .\lib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c
-
stm32f10x_flash.c
1
diff --git a/src/drv_bmp085.c b/src/drv_bmp085.c
index b2ff7b522b..2fd7a45a22 100755
--- a/src/drv_bmp085.c
+++ b/src/drv_bmp085.c
@@ -115,7 +115,7 @@ bool bmp085Detect(baro_t *baro)
#endif
// EXTI interrupt for barometer EOC
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource14);
+ gpioExtiLineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource14);
EXTI_InitStructure.EXTI_Line = EXTI_Line14;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
diff --git a/src/drv_gpio.c b/src/drv_gpio.c
index 248c1663df..91021f2d72 100644
--- a/src/drv_gpio.c
+++ b/src/drv_gpio.c
@@ -31,3 +31,12 @@ void gpioInit(GPIO_TypeDef *gpio, gpio_config_t *config)
}
}
}
+
+void gpioExtiLineConfig(uint8_t portsrc, uint8_t pinsrc)
+{
+ uint32_t tmp = 0x00;
+
+ tmp = ((uint32_t)0x0F) << (0x04 * (pinsrc & (uint8_t)0x03));
+ AFIO->EXTICR[pinsrc >> 0x02] &= ~tmp;
+ AFIO->EXTICR[pinsrc >> 0x02] |= (((uint32_t)portsrc) << (0x04 * (pinsrc & (uint8_t)0x03)));
+}
diff --git a/src/drv_gpio.h b/src/drv_gpio.h
index ff695ae6a8..ec0a9f5a17 100644
--- a/src/drv_gpio.h
+++ b/src/drv_gpio.h
@@ -53,3 +53,4 @@ typedef struct
#define digitalIn(p, i) (p->IDR & i)
void gpioInit(GPIO_TypeDef *gpio, gpio_config_t *config);
+void gpioExtiLineConfig(uint8_t portsrc, uint8_t pinsrc);
diff --git a/src/drv_hcsr04.c b/src/drv_hcsr04.c
index 515f2cf56c..1bc426f529 100644
--- a/src/drv_hcsr04.c
+++ b/src/drv_hcsr04.c
@@ -90,7 +90,7 @@ void hcsr04_init(sonar_config_t config)
gpioInit(GPIOB, &gpio);
// setup external interrupt on echo pin
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, exti_pin_source);
+ gpioExtiLineConfig(GPIO_PortSourceGPIOB, exti_pin_source);
EXTI_ClearITPendingBit(exti_line);