stm32的定时器8的计数器怎么不及时

2019-10-12 14:49发布

各位好兄弟好姐妹,我用stm32的定时器8怎么会没有pwm波产生,定时器1就有,按理说定时器1和定时器8的配置是一样的不对吗,程序在下面,麻烦各位帮我看下

       
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_OCInitTypeDef TIM_OCInitStructure;
        TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
       
#if 1
        //==================================================================================
        // ¿aê±Öó
        //==================================================================================
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8 , ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
       
       
        //==================================================================================
        // PC6 PC7 PC8(TIMER8 CH1 CH2 CH3)
        //==================================================================================
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;                                 
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOC,&GPIO_InitStructure);
       
       
        //==================================================================================
        // ¶¨ê±Æ÷8ÅäÖÃ
        //==================================================================================
        TIM_TimeBaseStructure.TIM_Prescaler = 0;                                                // Ô¤·ÖÆμÖμ
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down;                // ÏòéϼÆêyÄ£ê½
        TIM_TimeBaseStructure.TIM_Period = 2196;                                                // ×Ô¶ˉÖØ×°¼Ä′æÆ÷ÖüÆúÖμ
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;                                        // ±¶ÆμÖμ
        TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;                                // Öظ′¼ÆêyÖμ

        TIM_TimeBaseInit(TIM8,  &TIM_TimeBaseStructure);                                // 3õê¼»ˉ

        //==================================================================================
        // êä3öí¨μàÅäÖÃ
        //==================================================================================
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_OutputNState = TIM_OutputState_Disable;         // »¥21êä3öê§Äü

        TIM_OCInitStructure.TIM_Pulse = 1098;                                                         // Âö3å¿í¶è£¬óéÕa¸öéèÖÃÕ¼¿Õ±è
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;                 // μíμçƽóDD§
        TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;                  // ¿ÕÏDê±1ü½Å¸ßμçƽ
       
//        TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;
//        TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
        TIM_OC1Init(TIM8, &TIM_OCInitStructure);
        TIM_OC2Init(TIM8, &TIM_OCInitStructure);
        TIM_OC3Init(TIM8, &TIM_OCInitStructure);
        TIM_OC4Init(TIM8, &TIM_OCInitStructure);

        TIM_OC3PreloadConfig(TIM8,TIM_OCPreload_Enable);

        TIM_CCPreloadControl(TIM8, DISABLE);                                                         // Çå3yTIMíaéè2¶»ñ±è½ÏԤװÔØ¿ØÖÆλ
        TIM_ARRPreloadConfig(TIM8, ENABLE);




        // ê1ÄüTIM8
        TIM_Cmd(TIM8, ENABLE);
        TIM_CtrlPWMOutputs(TIM8, ENABLE);
#endif

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。