打印

STM32F207VG TIM1 不中断怎么回事啊?

[复制链接]
2934|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
haylang|  楼主 | 2013-6-4 18:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F207VG TIM1 不中断怎么回事啊?
波形从脚PE11进入

设置如下:

void TIM1_Configuration(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;
  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
       
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);  
       
  // TIM1 channel 2 pin (PE.11) configuration
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_11;           //GPIO_Pin_11;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP ;
  GPIO_Init(GPIOE, &GPIO_InitStructure);
       
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource11, GPIO_AF_TIM1);//GPIO_PinSource11,
       
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);       
   NVIC_InitStructure.NVIC_IRQChannel=TIM1_TRG_COM_TIM11_IRQn;
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
   NVIC_Init(&NVIC_InitStructure);
       
   NVIC_InitStructure.NVIC_IRQChannel=TIM1_UP_TIM10_IRQn;
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
   NVIC_Init(&NVIC_InitStructure);
               
  TIM_DeInit(TIM1);
  TIM_TimeBaseStructure.TIM_Prescaler=0;                       
  TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;      
  TIM_TimeBaseStructure.TIM_Period=0xffff;                        
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
       
       
  TIM_ClearFlag(TIM1,(TIM_FLAG_Update|TIM_FLAG_Trigger));
}

相关帖子

沙发
haylang|  楼主 | 2013-6-4 18:19 | 只看该作者
自已再说清楚一下: 在中断设置里如果改为CCP捕捉配置,则可以产生中断。

使用特权

评论回复
板凳
gaochy1126| | 2013-6-5 10:25 | 只看该作者
没有开中断吧?

使用特权

评论回复
地板
gaochy1126| | 2013-6-5 10:25 | 只看该作者
先使能中断才能执行的。

使用特权

评论回复
5
haylang|  楼主 | 2013-6-5 19:19 | 只看该作者
   
后来设置成PA12脚外接脉冲计数也进入不了中断,但直接能读出TIM1 COUN1=TIM1->CNT 里面的值,能看到TIM1一直在计数,哪位大侠指导一下啊

怎么才能计TIM1脉冲计数产生中断呢??

设置如下:
  NVIC_InitTypeDef NVIC_InitStructure;
      GPIO_InitTypeDef GPIO_InitStructure;
      TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

     RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
      RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);

      NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
      NVIC_InitStructure.NVIC_IRQChannel=TIM1_TRG_COM_TIM11_IRQn;
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
      NVIC_Init(&NVIC_InitStructure);

     NVIC_InitStructure.NVIC_IRQChannel=TIM1_UP_TIM10_IRQn;
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
      NVIC_Init(&NVIC_InitStructure);   
   
   
///************************************************************
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
   
      GPIO_PinAFConfig(GPIOA, GPIO_PinSource12, GPIO_AF_TIM1);        
     TIM_DeInit(TIM1);
     TIM_TimeBaseStructure.TIM_Period = 0xFFFF;
     TIM_TimeBaseStructure.TIM_Prescaler = 0x00;
     TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); // Time base configuration

        TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
   //***************************************************************************************
     TIM_UpdateDisableConfig(TIM1, ENABLE);
     TIM_UpdateRequestConfig(TIM1, TIM_UpdateSource_Global);
     TIM_SelectInputTrigger(TIM1, TIM_TS_ETRF);//External Trigger input
     TIM_ITConfig(TIM1,TIM_IT_Trigger,ENABLE);   
     TIM_SetCounter(TIM1, 0);         
     TIM_ClearFlag(TIM1,(TIM_FLAG_Update|TIM_FLAG_Trigger));
     TIM_Cmd(TIM1, DISABLE);   


void TIM1_UP_TIM10_IRQHandler(void)
{ //puts("11UP");
if(TIM_GetITStatus(TIM1,TIM_IT_Update)==SET)
{
  RTC_WakeUpCmd(DISABLE);  
  n_Counter=T_Counter;  
  T_Counter=0;  
  RTC_ClearITPendingBit(RTC_IT_WUT);
  EXTI_ClearITPendingBit(EXTI_Line22);  
  
  TIM_ClearITPendingBit(TIM1, TIM_FLAG_Update); //???
  TIM1->CR1&=0XFFFE;    //¹Ø±Õ¶¨Ê±Æ÷1
  Flag=1;               //1s±ê־λÖÃ1
  TIM1->SR&=0XFFFE;     //Í˳ö¶¨Ê±Æ÷1Òç³öÖжÏ֮ǰ,±ØÐëÇå³ý¶¨Ê±Æ÷1µÄÒç³ö±ê־λ
}
}
void TIM1_TRG_COM_TIM11_IRQHandler(void)
{ puts("11TR");
if(TIM_GetITStatus(TIM1,TIM_IT_Trigger)==SET)  
  
  TIM1->DIER&=0XFFBF;   
  TIM1->DIER|=0X0001;   
  RTC_WakeUpCmd(ENABLE);
  TIM1->SR&=0XFFBF;     
}
}

使用特权

评论回复
6
haylang|  楼主 | 2013-6-6 22:02 | 只看该作者
终于可以了,是没开,想用一下 TIM1_TRG_COM_TIM11_IRQHandler 这个怎么用啊  

使用特权

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

本版积分规则

9

主题

32

帖子

0

粉丝