• 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_flg = 1;
            //清除中断位
            EXTI_ClearITPendingBit(EXTI_Line7);
        }


     

  • 相关阅读:
    【全开源】餐饮点餐小程序源码(ThinkPHP+FastAdmin+Uniapp)
    使用linux系统IO函数实现 `cp`指令的功能
    电容笔买什么牌子好?2022电容笔品牌排行榜
    c++ fmt
    G1垃圾收集器
    使用Typora+EasyBlogImageForTypora写博客,无图床快速上传图片
    JAVA基础(三十六)——常用类之String类
    “通用大模型”趋势下,AI未来当如何?
    API cop
    删除双系统的ubuntu
  • 原文地址:https://blog.csdn.net/enfang1120/article/details/126175226