STM8S有许多定时器支持PWM输出,但在停止定时器后,IO口电平到底是多少呢?或高或低。

因此,为了确定PWM停止输出电平后其对应的值是多少,我们在停止PWM输出时需要对CCMR1寄存器进行设置。

 

例如,

1     TIM2_Cmd(DISABLE);  
2     /*停止PWM后将电平拉为低电平*/  
3     TIM2_ForcedOC1Config(TIM2_FORCEDACTION_INACTIVE);  
4     GPIO_WriteLow(GPIOC, GPIO_PIN_5);  

即可。

 

恢复时候需要重新将定时器初始化

TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_16,uFreq);
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, uFreq / 2, TIM2_OCPOLARITY_HIGH);

若直接调用

TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE, uFreq / 2, TIM2_OCPOLARITY_HIGH);

是不会产生PWM输出的。

 

相关文章:

  • 2021-10-14
  • 2021-09-02
  • 2021-05-28
  • 2022-12-23
  • 2022-02-26
  • 2022-12-23
  • 2021-09-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-04
  • 2021-07-23
  • 2021-09-22
  • 2021-11-16
  • 2021-04-07
相关资源
相似解决方案