STM32配置外部中断(EXTI)流程

1:配置外设GPIO端口(具体配置为请看配置GPIO流程)

        GPIO_Init();

2:使能复用功能时钟

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);       

3:初始化外部中断以及配置中断映射

        EXTI_InitTypeDef  EXTI_InitStruct;

        GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);    //中断映射
        EXTI_InitStruct.EXTI_Line = EXTI_Line0;        //中断线
        EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;        //中断模式
        EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;        //上升/下降沿选择
        EXTI_InitStruct.EXTI_LineCmd = ENABLE;    //中断使能
        EXTI_Init(&EXTI_InitStruct);

4:初始化中断控制器以及中断分组

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        //中断分组

        NVIC_InitTypeDef    NVIC_InitStruct; 

        NVIC_InitStruct.NVIC_IRQChannel    = EXTI0_IRQn;        //中断通道
        NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 2;        //优先级
        NVIC_InitStruct.NVIC_IRQChannelSubPriority = 3;               //响应级
        NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;        //使能
        NVIC_Init(&NVIC_InitStruct);

5:编写中断服务函数 以及 清除中断标志

        void EXTI0_IRQHandler(void){                   //中断通道0的中断服务函数

                EXTI_ClearITPendingBit(EXTI_Line0);    //清除中断标志

        }             

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值