STM32F4ZET6 TIM8进不去中断服务函数

2019-07-21 05:41发布

rt,最近在学习定时器中断,为了实现互补输出PWM使用了TIM8,老师要求在每次中断修改PWM的占空比,同时中断周期要和PWM周期一致,学长建议使用TIM8同时输出PWM并作为中断定时器。本来使用的TIM3进入中断,编译通过能够正常调节占空比;使用TIM8之后只能输出PWM占空比,但是不能调节占空比,加断点观察发现无法进入中断服务函数,这是为什么呢?
中断配置和中断服务函数配置如下:定时器配置略。
TIM_ITConfig(TIM8,TIM_IT_Update,ENABLE);
        NVIC_InitStructure.NVIC_IRQChannel=TIM8_CC_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);


void TIM8_CC_IRQHandler(void)
{
        if(TIM_GetITStatus(TIM8,TIM_IT_Update)==SET)
        {
                if(zhankongbi==2000)
                zhankongbi=8000;
                else
                zhankongbi=2000;
                bsp_SetTIMOutPWM(GPIOC, GPIO_Pin_6, TIM8, 1, 10000, zhankongbi);
        }
        TIM_ClearITPendingBit(TIM8,TIM_IT_Update);  //Çå3yÖD¶Ï±ê־λ
}

项目编译通过没有问题,PWM输出正常,就是进不去中断,希望原子哥救命!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
零一三南宫南
2019-07-21 09:01
TIM_ITConfig(TIM8,TIM_IT_Update,ENABLE);

TIM_IT_Update 对应 TIM8_UP_IRQn

  *     @arg TIM_IT_Update: TIM update Interrupt source
  *     @arg TIM_IT_CC1: TIM Capture Compare 1 Interrupt source
  *     @arg TIM_IT_CC2: TIM Capture Compare 2 Interrupt source
  *     @arg TIM_IT_CC3: TIM Capture Compare 3 Interrupt source
  *     @arg TIM_IT_CC4: TIM Capture Compare 4 Interrupt source
  *     @arg TIM_IT_COM: TIM Commutation Interrupt source
  *     @arg TIM_IT_Trigger: TIM Trigger Interrupt source
  *     @arg TIM_IT_Break: TIM Break Interrupt source

一周热门 更多>