妈的妈的妈的。代码一点没改。用示波器手懂调。竟然跳出来了。原因是他妈的。死区时间过长。示波器自动读不出来。。自动认为长时间为低电平。。。。日。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。无语。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
void PWM_Init(void)
{
TIM1_DeInit();
TIM1_TimeBaseInit(1, TIM1_COUNTERMODE_UP, 11, 0);
TIM1_OC3Init(TIM1_OCMODE_PWM2, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,
6, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_HIGH, TIM1_OCIDLESTATE_RESET,
TIM1_OCNIDLESTATE_RESET);
//设置死区
TIM1_BDTRConfig(TIM1_OSSISTATE_ENABLE, TIM1_LOCKLEVEL_OFF, 1, TIM1_BREAK_DISABLE, TIM1_BREAKPOLARITY_LOW, TIM1_AUTOMATICOUTPUT_ENABLE);
/* TIM1 counter 使能 */
TIM1_OC3PreloadConfig(ENABLE);
TIM1_CtrlPWMOutputs(ENABLE); /* 使能TIM1输出 */
TIM1_Cmd(ENABLE); //TIM1启动/关闭
}
|