本帖最后由 wanyisq 于 2016-5-3 22:34 编辑
新手编写了一个F103的外部中断程序,不知错误在哪,就是不能实现中断。
请教一下各位
- void GPIO_EXIT_Init(void)
- {
-
- GPIO_InitTypeDef GPIO_InitStructure;
- EXTI_InitTypeDef EXTI_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); //PA8-KEY
-
- NVIC_InitTypeDef NVIC_InitStructure;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
- NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource8);
- EXTI_InitStructure.EXTI_Line = EXTI_Line8;
- EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
- EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
- EXTI_InitStructure.EXTI_LineCmd = ENABLE;
- EXTI_Init(&EXTI_InitStructure);
-
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9 | GPIO_Pin_8; //PD8、9--LED
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
- GPIO_Init(GPIOD, &GPIO_InitStructure);
- }
- int main(void)
- {
-
- GPIO_EXIT_Init();
- GPIO_SetBits(GPIOD, GPIO_Pin_8);
- while(1)
- {
- GPIO_SetBits(GPIOD, GPIO_Pin_8);
- }
- }
- void EXIT9_5_IRQHandler(void)
- {
- if(EXTI_GetITStatus(EXTI_Line8)!=RESET)
- {
- // GPIO_WriteBit(GPIOD,GPIO_Pin_8,
- // (BitAction)(1-GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_8)));
- GPIO_WriteBit(GPIOD, GPIO_Pin_9, (BitAction)((1-GPIO_ReadOutputDataBit(GPIOD, GPIO_Pin_9))));
- EXTI_ClearITPendingBit(EXTI_Line8);
-
- }
- }
头文件都已经包含进去了
|