龙行tianxia123 发表于 2016-6-22 09:05:10

STM32 高级定时器产生PWM波第一个脉宽很长的问题

芯片是STM32F103VE,通道部分设置程序为:
    TIM1->BDTR |= TIM_BDTR_OSSR;
      TIM1->BDTR |= TIM_BDTR_MOE;      
      TIM1->CCR1 = 120;
      TIM1->CCMR1 &= (~TIM_CCMR1_CC1S);//Output Mode

      
      TIM1->CCMR1 &= (~TIM_CCMR1_OC1M);
      TIM1->CCMR1 |= TIM_OCMode_PWM1;
      
      TIM1->CCER &= (uint16_t)(~((uint16_t)TIM_CCER_CC1P));
      TIM1->CCER |= TIM_OCPolarity_Low;      
      TIM1->CCER &= (uint16_t)(~((uint16_t)TIM_CCER_CC1NP));
      TIM1->CCER |= TIM_OCNPolarity_Low;
      
      TIM1->CR2 &= (~TIM_CR2_OIS1);
      TIM1->CR2 &= (~TIM_CR2_OIS1N);结果波形如下图所示,第一个脉宽明显大很多。


wenyangzeng 发表于 2016-6-27 10:36:27

你应该在配置完定时器的所有参数后才启动定时器。

cos12a-21701 发表于 2016-6-27 12:37:20

同理。。。

yfy123 发表于 2016-6-27 15:55:12

nice。。。

power568 发表于 2016-6-27 16:14:08

是不是初始值不正确?

欣辰天下 发表于 2016-6-27 21:41:40

定时器太快开启了。

xueshawu1 发表于 2016-6-28 11:45:43

2 楼说的很对!!!
页: [1]
查看完整版本: STM32 高级定时器产生PWM波第一个脉宽很长的问题