STM8S有許多定時器支持PWM輸出,但在停止定時器后,IO口電平到底是多少呢?或高或低。
因此,為了確定PWM停止輸出電平后其對應(yīng)的值是多少,我們在停止PWM輸出時需要對CCMR1寄存器進行設(shè)置。
例如,
TIM2_Cmd(DISABLE);
/*停止PWM后將電平拉為低電平*/
TIM2_ForcedOC1Config(TIM2_FORCEDACTION_INACTIVE);
GPIO_WriteLow(GPIOC,GPIO_PIN_5);
即可。
恢復(fù)時候需要重新將定時器初始化
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_16,uFreq);
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, uFreq / 2,TIM2_OCPOLARITY_HIGH);
若直接調(diào)用
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, uFreq / 2, TIM2_OCPOLARITY_HIGH);
是不會產(chǎn)生PWM輸出的。