有个问题咨询大佬们:设置了STM32F103R8T6 的定时器1 为比较输出 产生PWM ,现在设置好后,在定时器初始化函数中一开起定时器1就一直进入TIM1_CC_IRQHandler中断中,利用串口打印一直在这个中断里 ,没有进入while。关闭了TIM1通道也没有用,不知道为何?烦请大佬们看下问题原因在哪里
函数源代码如下:
定时器初始化函数:
void TIM1_Int_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); //使能定时器3时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); //使能GPIO外设和AFIO复用功能模块时钟
TIM_DeInit(TIM1); //将TIM1定时器初始化位复位值
TIM_InternalClockConfig(TIM1);
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQn; //TIM1中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4; //从优先级3级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
bsp_InitMOTO();
//设置该引脚为复用输出功能,输出TIM1 CH1的PWM脉冲波形 GPIOA.8
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;