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

本文详细介绍了在STM32微控制器中配置GPIO端口、使能复用功能时钟、初始化外部中断、配置中断映射、初始化中断控制器以及编写中断服务函数的步骤。通过这些步骤,可以实现外部中断触发并处理中断事件。同时,讲解了如何设置中断分组和优先级,确保中断系统的有效管理。
摘要由CSDN通过智能技术生成

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);    //清除中断标志

        }             

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值