//初始化代码
void GT800_Configuration(void)
{
GPIO_InitTypeDef gpio;
NVIC_InitTypeDef nvic;
EXTI_InitTypeDef exti;
/* Enable GPIOB clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
/* INT初始化为悬浮输入*/
gpio.GPIO_Pin = GT800_INT;
gpio.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOB,&gpio);
/* Configure the NVIC Preemption Priority Bits */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
/* Enable the EXTI0 Interrupt */
nvic.NVIC_IRQChannel = EXTI0_IRQn;
nvic.NVIC_IRQChannelPreemptionPriority = 1;
nvic.NVIC_IRQChannelSubPriority = 1;
nvic.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&nvic);
EXTI_ClearITPendingBit(EXTI_Line0);//清除中断标志
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0);//管脚选择
EXTI_DeInit();
exti.EXTI_Line = GPIO_Pin_0;
exti.EXTI_Mode = EXTI_Mode_Interrupt;
//产生中断
exti.EXTI_Trigger = EXTI_Trigger_Falling;
exti.EXTI_LineCmd = ENABLE;
//启动中断的接收
EXTI_Init(&exti);
//外部设备中断启动
I2C1_Configuration();
}
|