小Q-339479 发表于 2012-1-20 23:11:02

STM32 外部中断不能触发

小弟学STM32不到三天,大侠勿喷。调了一天,就是没有进入中断里面。编译没错误。大侠帮我看看怎回事?谢谢了
 
void EXTI0_IRQHandler(void)
{
 if(EXTI_GetITStatus(EXTI_Line0)!=RESET)
 {
  EXTI_ClearITPendingBit(EXTI_Line0);
  GPIO_SetBits(GPIOC,GPIO_Pin_6);
  GPIO_SetBits(GPIOC,GPIO_Pin_7);
  GPIO_ResetBits(GPIOD,GPIO_Pin_6);
  GPIO_ResetBits(GPIOD,GPIO_Pin_13);
  Delay(0xfffff);
  
    
 }
}
int main(void)
{

  SystemInit();//开72MHZ主频时钟
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO |
                         RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
                         RCC_APB2Periph_GPIOE, ENABLE); //使能GPIO时钟和复用AFIO时钟
 GPIO_init();
 EXTI_init();
 NVIC_init();
  while (1)
  {
    GPIO_SetBits(GPIOD,GPIO_Pin_6);
  GPIO_SetBits(GPIOD,GPIO_Pin_13);
  
  }
}
void GPIO_init()
{
 GPIO_InitTypeDef GPIO_InitStructure;  //声明一个结构体叫GPIO_InitStructure
 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7;   //LED1  LED2
 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
 GPIO_Init(GPIOC,&GPIO_InitStructure);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_13; //LED3  LED4       
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOD, &GPIO_InitStructure);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_2|GPIO_Pin_3; //S1 2 3 4       
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
 GPIO_Init(GPIOE, &GPIO_InitStructure);
 
}
void EXTI_init()
{
 EXTI_InitTypeDef EXTI_InitStructure;  //声明一个结构体叫EXTI_InitStructure
 GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource5);
 EXTI_InitStructure.EXTI_Line=EXTI_Line0; //选择中短线0
 EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;  //设置为中断
 EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;  //  上升沿触发
 EXTI_InitStructure.EXTI_LineCmd=ENABLE;    //
 EXTI_Init(&EXTI_InitStructure);
 EXTI_GenerateSWInterrupt(EXTI_Line0);
}
void NVIC_init()
{
  NVIC_InitTypeDef NVIC_InitStructure;
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);//选择优先级分组
 NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
   NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
   NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
   NVIC_Init(&NVIC_InitStructure);
 
}

小Q-339479 发表于 2012-1-21 11:56:44

回复:STM32 外部中断不能触发

帮忙看看吧 好痛苦  开发板的程序5个三个不能用。。。。调了两天了 还是不行 不知道是哪个环节错了  网上移植了别人的程序也不行。:'(

小Q-339479 发表于 2012-1-21 16:48:38

回复:STM32 外部中断不能触发

没有好心的大哥 帮我看看吗:'(

小Q-339479 发表于 2012-1-22 00:49:02

回复:STM32 外部中断不能触发

疯了=。=不知道问题出在哪
页: [1]
查看完整版本: STM32 外部中断不能触发