本帖最后由 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);
}
}
头文件都已经包含进去了
|