Переглянути джерело

[Bsp]增强F10x_HAL的GPIO中断逻辑

uestczyh222 7 роки тому
батько
коміт
3ea5cd0bdb
1 змінених файлів з 3 додано та 1 видалено
  1. 3 1
      bsp/stm32f10x-HAL/drivers/drv_gpio.c

+ 3 - 1
bsp/stm32f10x-HAL/drivers/drv_gpio.c

@@ -772,18 +772,20 @@ rt_err_t stm32_pin_irq_enable(struct rt_device *device, rt_base_t pin,
         index->rcc();
         /* Configure GPIO_InitStructure */
         GPIO_InitStruct.Pin = index->pin;
-        GPIO_InitStruct.Pull = GPIO_NOPULL;
         GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
         switch (pin_irq_hdr_tab[irqindex].mode)
         {
         case PIN_IRQ_MODE_RISING:
             GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
+            GPIO_InitStruct.Pull = GPIO_PULLDOWN;
             break;
         case PIN_IRQ_MODE_FALLING:
             GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
+            GPIO_InitStruct.Pull = GPIO_PULLUP;
             break;
         case PIN_IRQ_MODE_RISING_FALLING:
             GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;
+            GPIO_InitStruct.Pull = GPIO_NOPULL;
             break;
         }
         HAL_GPIO_Init(index->gpio, &GPIO_InitStruct);