打印

昨晚stm32f101遇到奇怪问题:外部中断函数总是重复进入

[复制链接]
2352|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tomzxq|  楼主 | 2012-4-16 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
昨晚stm32f101遇到奇怪问题:外部中断函数总是重复进入,但是io绝对没有变化。相关代码如下
请大家指点。原来用stm32f103也是类似用法,这次真的郁闷了,清楚中断标志后还是会再次进来。
void EXTI15_10_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line13) != RESET)
  {  

   i=GPIO_ReadInputDataBit(RI_GPIO);
   if (i==0) noevent_counter=0;
   else noevent_counter++;
   /EXTI_ClearITPendingBit(EXTI_Line13);
  }
}
void open_INT ( void ){

  
NVIC_InitTypeDef NVIC_InitStructure;
  
EXTI_InitTypeDef EXTI_InitStructure;
  
/* Enable the EXTI13 Interrupt */
  
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel;
  
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
  
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  
NVIC_Init(&NVIC_InitStructure);
  
/* Connect EXTI Line1 to Pb.13 */

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource13);



/* Configure EXTI Line4 to generate an interrupt on falling edge */  

EXTI_InitStructure.EXTI_Line = EXTI_Line13;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;//EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

EXTI_ClearITPendingBit(EXTI_Line13);


}
void GpioInputInit (void)
{

GPIO_InitTypeDef GPIO_InitStructure;
  // GPIO Init
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA |
    RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);                    


  /* Configure the pc as input floating */
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_3 |GPIO_Pin_5 |GPIO_Pin_6 |GPIO_Pin_13;  
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 ;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_13 ;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
}
沙发
tomzxq|  楼主 | 2012-4-16 10:50 | 只看该作者
补充说明,原来类似功能在stm32f103都用过,功能正常的,中断优先级也都没问题的。真的怀疑这次我的片子是不是坏了。

使用特权

评论回复
板凳
tomzxq|  楼主 | 2012-4-16 20:43 | 只看该作者
怎么没有回答,我描述的还算清楚吧?各位高手请进,香主请进

使用特权

评论回复
地板
lut1lut| | 2012-4-17 15:31 | 只看该作者
配置PB.13的上升沿产生EXT13,PB.13的GPIO配置是浮空输入。

那你板子上PB.13有下拉伐?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

30

帖子

1

粉丝