我又开始玩PWM了。我一开始尝试了PWM的两个引脚输出相反的极性,但是我在分析仪上看到两个引脚是相同的。
这样写:
...
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OC极性=TIM_OCPolarity_High;
TIM_OC2Init(TIM3,&TIM_OCInitStructure); //TIM3_CH2
TIM_OCInitStructure .TIM_OCPolarity=TIM_OCPolarity_Low; //TIM3_CH1
TIM_OC1Init(TIM3,&TIM_OCInitStructure);
...
我以为只是输出水平更高或更低而已。
因为听原子哥说PWM1模式和2的区别是当CNT的值大于或小于CCR时才生效。
这就打脸:
http://www.sychzs.cn/thread-46264-1-1.html
引用如下:
---------------------------------------------------------
如果是PWM1模式
如果设置了 TIM_OCPolarity_High TIMx_CNT 如果是PWM2模式 如果设置了 TIM_OCPolarity_High TIMx_CNT>TIMx_CCR 输出为低电平 TIMx_CNT>TIMx_CCR 输出为高电平 如果设置了 TIM_OCPolarity_Low TIMx_CNT>TIMx_CCR 输出为高电平 TIMx_CNT 解决办法是直接使用PWM1就可以了。 您也可以参考这个例子: http://www.sychzs.cn/zyqgold/archive/2013/05/26/3100377.html 我发现有的针脚自然是反的,棒极了!
如果设置了 TIM_OCPolarity_Low TIMx_CNT