STM32 TIM1 三相桥互补输出,带死区设置(欢迎拍砖)

发布: 2008-9-11 16:28 | 作者: nomoneyiv | 来源: StmFans思蜕盟 OPELC 自由电子联盟

void TIM1_Configuration( void )
{
    /* TIM1 Peripheral Configuration */
    TIM1_DeInit();
    /* Time Base configuration */
    TIM1_TimeBaseStructure.TIM1_Prescaler = 0;
    TIM1_TimeBaseStructure.TIM1_CounterMode = TIM1_CounterMode_Up;
    TIM1_TimeBaseStructure.TIM1_Period = (pluse_period - 1);
    TIM1_TimeBaseStructure.TIM1_ClockDivision = 0;
    TIM1_TimeBaseStructure.TIM1_RepetitionCounter = 0;

    TIM1_TimeBaseInit(&TIM1_TimeBaseStructure);

    /* Channel 1, 2, 3 Configuration in PWM mode */
    TIM1_OCInitStructure.TIM1_OCMode = TIM1_OCMode_PWM2;
    TIM1_OCInitStructure.TIM1_OutputState = TIM1_OutputState_Disable;
    TIM1_OCInitStructure.TIM1_OutputNState = TIM1_OutputNState_Disable;                  
    TIM1_OCInitStructure.TIM1_Pulse = CCR1_Val;
    TIM1_OCInitStructure.TIM1_OCPolarity = TIM1_OCPolarity_Low;
    TIM1_OCInitStructure.TIM1_OCNPolarity = TIM1_OCNPolarity_High;         
    TIM1_OCInitStructure.TIM1_OCIdleState = TIM1_OCIdleState_Set;
    TIM1_OCInitStructure.TIM1_OCNIdleState = TIM1_OCIdleState_Reset;         

    TIM1_OC1Init(&TIM1_OCInitStructure);

    TIM1_OCInitStructure.TIM1_Pulse = CCR2_Val;
    TIM1_OC2Init(&TIM1_OCInitStructure);

    TIM1_OCInitStructure.TIM1_Pulse = CCR3_Val;
    TIM1_OC3Init(&TIM1_OCInitStructure);

    /* Automatic Output enable, Break, dead time and lock configuration*/
    TIM1_BDTRInitStructure.TIM1_OSSRState = TIM1_OSSRState_Enable;
    TIM1_BDTRInitStructure.TIM1_OSSIState = TIM1_OSSIState_Enable;
    TIM1_BDTRInitStructure.TIM1_LOCKLevel = TIM1_LOCKLevel_1;
    TIM1_BDTRInitStructure.TIM1_DeadTime = 0x1f;
    TIM1_BDTRInitStructure.TIM1_Break = TIM1_Break_Disable;
    TIM1_BDTRInitStructure.TIM1_BreakPolarity = TIM1_BreakPolarity_High;
    TIM1_BDTRInitStructure.TIM1_AutomaticOutput = TIM1_AutomaticOutput_Enable;

    TIM1_BDTRConfig(&TIM1_BDTRInitStructure);

    /* TIM1 counter enable */
    TIM1_Cmd(ENABLE);
    TIM1_ITConfig(TIM1_IT_Update, ENABLE);

    /* Main Output Enable */
    TIM1_CtrlPWMOutputs(DISABLE);
    TIM1_CtrlPWMOutputs(ENABLE);
}
binglin (2008-9-11 16:38:26)
非常值得参考的代码,顶一把。
yjwpm (2008-9-11 16:51:55)
非常值得参考的代码,顶一把。
bkkman (2008-9-11 19:30:10)
顶一把。
bkkman (2008-12-26 13:13:45)
顶一把!
yyjslna (2009-1-08 11:01:21)
有很大的参考价值!
alex.sz (2009-3-03 23:33:10)
值得参考
chunhuaqioushi (2009-3-08 00:27:02)
学习一下
lljyes (2009-3-08 01:19:51)
正学这部份!
sure_2011 (2009-5-25 11:12:57)
学习学习!!
hbwwh (2009-5-27 16:47:59)
恰好用的上啊
max2650 (2009-12-28 20:00:10)
值得学习!顶起!