个百zz分点个 发表于 2022-12-28 12:00

HK32F030MF4P6 EXTI外部中断例程

应用场景


PC7管脚外部中断触发例程

void ALR_EXTI_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    EXTI_InitTypeDef EXTI_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;

    /*GPIO 时钟使能*/
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC,ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);   

    /*---- GPIO PC7*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
    GPIO_Init(GPIOC, &GPIO_InitStructure);   

    /* 配置EXTI */
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Line = EXTI_Line7;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);

    SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource7);
    EXTI_ClearITPendingBit(EXTI_Line7);

    NVIC_InitStructure.NVIC_IRQChannel = EXTI7_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

}

void EXTI7_IRQHandler(void)
{
    if (EXTI_GetFlagStatus(EXTI_Line7) != RESET)
    {
      // LED 翻转
      LED2 =! LED2;
      tp_** = 1;
      //清除中断位
      EXTI_ClearITPendingBit(EXTI_Line7);
    }

}


sr19861126 发表于 2023-9-20 16:15

PC7 给LED用了,触发不了啊
页: [1]
查看完整版本: HK32F030MF4P6 EXTI外部中断例程