#include "exti.h" #include "delay.h" void exti_Init(void) { EXTI_InitTypeDef EXTI_InitStruct; NVIC_InitTypeDef NVIC_InitStruct; GPIO_InitTypeDef GPIO_InitStructure; // KEY_Init();//IO��ʼ�� RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//�����ⲿ�ж�ʱ�� RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//ʹ��GPIOBʱ�� GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_9;// //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//�������� GPIO_Init(GPIOB, &GPIO_InitStructure);//��ʼ��GPIOB7 //io�����ж���ӳ�� GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource7);//���ӵ��ж���7 GPIO7ֻ��ӳ�䵽�ж���4���� EXTI_InitStruct.EXTI_Line=EXTI_Line7;//ȷ���ж��� EXTI_InitStruct.EXTI_LineCmd=ENABLE;//ʹ�� EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;//�ж�ģʽ EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;//xia���ش��� EXTI_Init(&EXTI_InitStruct);//��ʼ�� //io�����ж���ӳ�� GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource9);//���ӵ��ж���9 EXTI_InitStruct.EXTI_Line=EXTI_Line9;//ȷ���ж��� EXTI_InitStruct.EXTI_LineCmd=ENABLE;//ʹ�� EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;//�ж�ģʽ EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;//xia���ش��� EXTI_Init(&EXTI_InitStruct);//��ʼ�� NVIC_InitStruct.NVIC_IRQChannel=EXTI9_5_IRQn; /* ��Ҫ��ȷ���ǣ�PxN�ܽŹ����ⲿ�ж���EXTIN���ⲿ�ж�����EXTIN_IRQn ���жϷ���������EXTIN_IRQHandler��������Ҫע�����[9...5] ����EXTI9_5_IRQn��EXTI9_5_IRQHandler��[15...10]����EXTI15_10_IRQn��EXTI15_10_IRQHandler */ NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;//ʹ�� NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;//�ж������ȼ� NVIC_InitStruct.NVIC_IRQChannelSubPriority=0; NVIC_Init(&NVIC_InitStruct);//��ʼ�� } void EXTI9_5_IRQHandler(void) { if(EXTI_GetITStatus(EXTI_Line7)!=RESET) //PB7�ⲿ�ж� { EXTI_ClearITPendingBit(EXTI_Line7);//����ж� ��־ }else if(EXTI_GetITStatus(EXTI_Line9)!=RESET) { } EXTI_ClearITPendingBit(EXTI_Line9);//����ж� ��־ }