本帖最后由 1208 于 2019-11-23 16:58 编辑
定义:TIM_OCNPolarity_High为高极性 TIM_OCNPolarity_Low为低极性 分析图: 110:PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为
无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否
则为有效电平(OC1REF=1)。
111:PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为
有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电
平当PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时 通道1为无效电平,否则为有效电平;
TIM_SetCompare2(TIM3,0); 1)为什么在高极性时,灯会灭呢 因为TIMx_CNT<TIMx_CCR1,通道1为无效电平 战舰板的LED是低电平亮,而TIM_SetCompare2(TIM3,0);即TIMx_CCR1的值为0,也就是TIMx_CCR1 <=TIM3_CNT时通道2输出是高电平 不符合LED灯低电平亮,LED灯是不亮的。 2)那么把高极性改为低极性,为什么灯会亮 如TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
因为CC1P=0时:OC1高电平有效 TIM_OCNPolarity_High
CC1P=1时:OC1低电平有效 TIM_OCNPolarity_Low 由于低极性输出的是低电平有效所以灯可以点亮
3)为什么把PWM2改成了PWM1,别的什么都没动,灯就亮了 “PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平” 4)考虑到设置CCR的值设置为300到500效果不是很明显 所以CCR取0和899,可以直接看出效果现象
|