EXTI外部中断

          只有当使用事件控制寄存器、复用重映射和调试寄存器以及外部中断寄存器的时候,才需要提前开启AFIO的时钟! 并不是使用到引脚复用功能就必须开启AFIO时钟。

第一步

         配置RCC,将涉及到的外设的时钟都打开 ;(开启AFIO、GPIO时钟) NVIC和EXTI这两个外设时钟始终是打开的因此他们两个不需要开启时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

第二步

        配置GPIO, 将端口设置成输入模式;(因为是通过外接对射式红外传感器中断次数传输到32)

GPIO_InitTypeDef  GPIO_InitStructure;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOB,&GPIO_InitStructure);

第三步

        配置AFIO,选择用的这一路GPIO连接到后面的EXTI;(设置gpio线路要中断的引脚配置)

		GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource10);
		

第四步

        配置EXTI的选择边沿触发模式(上升沿、下降沿、双边沿)和选择触发响应模式(中断响应、事件响应);

	//外部中断配置exti
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line=EXTI_Line10;
EXTI_InitStructure.EXTI_LineCmd=ENABLE;
EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;
EXTI_Init(&EXTI_InitStructure);
		

第五步

        配置NVIC,给中断选择一个合适的优先级;

最后就能通过NVIC外部中断信号进入CPU,CPU接收中断信号,从中断函数里面执行中断程序

NVIC_InitTypeDef NVIC_InitStruct;
//选择分组2完成,这个分组方式整个芯片只能用一种		NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);		NVIC_InitStruct.NVIC_IRQChannel=EXTI15_10_IRQn;
NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
//指定抢占优先级
NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStruct);
	

需要注意的是 NVIC支持多达20个软件的中断/事件请求

但是 exti9_5 exti15_10是共用同一个通道

 

后面根据选择通道设置一个中断函数(中断函数不需要在.H文件中声明)   

//中断函数一般都是无参无返回

void EXTI15_10_IRQHandler(void)
        {
            //先进行一个中断标志位的判断
            if(EXTI_GetITStatus(EXTI_Line10)==SET)
                {    CountSenor_Num++;
                    EXTI_ClearITPendingBit(EXTI_Line10);
                }
        
        
        }

  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值