打印
[STM32F2]

STM8和STM32F207都遇到一个奇怪的问题

[复制链接]
990|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mingjiezhong|  楼主 | 2015-1-19 17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定时中断的时候总是每次 update 进去两次中断,下面是初始化程序

//输入时钟 = 60M/16= 3.75M
  TIM_DeInit(TIM3);
  TIM_TimeBaseStructure.TIM_Period = 1875-1 ;                //Autoreload value (32bit)
  TIM_TimeBaseStructure.TIM_Prescaler = 2-1 ;                //Prescaler value (16 bit )
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  // 中断频率 1K
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
       
  TIM_ITConfig(TIM3, TIM_IT_Update , ENABLE);


  /* TIM1 enable counter */
  TIM_Cmd(TIM3, ENABLE);
  /* Enable the TIM3 gloabal Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

//这里是中断程序
void TIM3_IRQHandler(void)
{
  if (TIM_GetITStatus(TIM3, TIM_IT_Update ) != RESET)     //这个标志位确实是只置位一次,但是中断确实进来了两次,其中一次改标志位没有置位如果是别的标志位导致的按理不清也会不断进来,但是恰恰就只多进来一次
  {
    TIM_ClearITPendingBit(TIM3, TIM_IT_Update );
        CTR_LED = led_stat  ;
        if( led_stat>0 ) led_stat =0 ;
        else led_stat = 1 ;
  }  
}


沙发
mingjiezhong|  楼主 | 2015-1-19 17:45 | 只看该作者
另外这个问题STM8也遇到过,当时也是用了逻辑的办法避开了。别的单片机重来没遇到过这个问题

使用特权

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

本版积分规则

18

主题

80

帖子

0

粉丝