|
楼主 |
发表于 2016-9-6 12:39:42
|
显示全部楼层
本帖最后由 siyeb 于 2016-9-6 12:42 编辑
您好,我这边的确使能了比较中断,但是还是不行,是不是定时器的比较模式智能输出pwm而不能产生中断?
下面是配置代码:
- //配置定时器部分
- NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
- NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
- NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
- NVIC_Init(&NVIC_InitStructure);
-
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
- TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
- TIM_TimeBaseStructure.TIM_Period = 23*256;
- TIM_TimeBaseStructure.TIM_Prescaler = 2;
- TIM_TimeBaseStructure.TIM_ClockDivision = 0x00;
- TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
- TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
- TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
- TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
- TIM_OCInitStructure.TIM_Pulse = 23*120;
- TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
-
- TIM_OC4Init(TIM3, &TIM_OCInitStructure);
-
- TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
- TIM_ARRPreloadConfig(TIM3, ENABLE);
- TIM_ITConfig(TIM3, TIM_IT_CC4 , ENABLE);
- TIM_Cmd(TIM3, ENABLE);
- //中断部分
- void TIM3_IRQHandler(void)
- {
- if (TIM_GetITStatus(TIM3, TIM_IT_CC4) != RESET)
- {
- TIM_ClearITPendingBit(TIM3, TIM_IT_CC4 );
- PCout(0) = !PCout(0);
- }
- }
- }
复制代码 |
|