diff options
| author | yangjie <[email protected]> | 2018-12-13 10:03:51 +0800 |
|---|---|---|
| committer | yangjie <[email protected]> | 2018-12-13 10:33:46 +0800 |
| commit | caba8a7d1156752b4c188672cfdd783608512c84 (patch) | |
| tree | a66b0c8ff663d7fab30a2ba40e77acca5feece74 /bsp/stm32 | |
| parent | 2b98f4720c827ae1850df78299f6b273d568c8c7 (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.c | 6 |
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; } |
