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输出正常,就是进不去中断,希望原子哥救命!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
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
一周热门 更多>