summaryrefslogtreecommitdiff
path: root/bsp/stm32
diff options
context:
space:
mode:
authoryangjie <[email protected]>2018-12-13 10:03:51 +0800
committeryangjie <[email protected]>2018-12-13 10:33:46 +0800
commitcaba8a7d1156752b4c188672cfdd783608512c84 (patch)
treea66b0c8ff663d7fab30a2ba40e77acca5feece74 /bsp/stm32
parent2b98f4720c827ae1850df78299f6b273d568c8c7 (diff)
[bsp][stm32 hal drv_gpio]If there is no pull-up or pull-down outside, there will be problems with just setting "GPIO_InitStruct.Pull = GPIO_NOPULL".
Diffstat (limited to 'bsp/stm32')
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_gpio.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c b/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c
index d35c71c0e9..0d71c06763 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_gpio.c
@@ -486,18 +486,20 @@ static rt_err_t stm32_pin_irq_enable(struct rt_device *device, rt_base_t pin,
irqmap = &pin_irq_map[irqindex];
/* Configure GPIO_InitStructure */
- GPIO_InitStruct.Pin = index->pin;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Pin = index->pin;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
switch (pin_irq_hdr_tab[irqindex].mode)
{
case PIN_IRQ_MODE_RISING:
+ GPIO_InitStruct.Pull = GPIO_PULLDOWN;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
break;
case PIN_IRQ_MODE_FALLING:
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
break;
case PIN_IRQ_MODE_RISING_FALLING:
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;
break;
}