外部中断新库

1.在STM32Cubmx中的设置

  a.中断的引脚

  b.在GPIO中设置触发方式

  c.在NVIC中开启外部中断,以及设置中断优先级(F0只有中断优先级没有抢占优先级)

2.在STM32F0XX.it.h中会生成中断函数EXTI4_15_IRQHandler(void)函数内部实际先清除中断标志位

 然后执行hal_gpio.h内的中断回调函数HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)在内部写中断代码即可

 以下为按键外部中断控制LED灯的示例

#include "pbdata.h"
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    switch(GPIO_Pin)
    {
        case KEY1_Pin:
        {
            if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==0)
            {
                HAL_Delay(20);
                if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==0)
                    LED_1_T;                
            }                
        }
    }
}

  

猜你喜欢

转载自www.cnblogs.com/cgy601785959/p/10759392.html