PWM模式的库函数介绍

来源:互联网 发布:js 获取signature 编辑:程序博客网 时间:2024/05/19 03:27
  PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道x为有效电平(OC1REF=1),否则为
无效电平;在向下计数时,一旦TIMx_CNT<TIMx_CCR1时通道x为有效电平(OC1REF=1),否
则为有效电平(OC1REF=0)。
  PWM模式2- 在向上计数时,一旦TIMx_CNT>TIMx_CCR1时通道x为有效电平(OC1REF=1),否则为
无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道x为有效电平(OC1REF=1),否则为无效电

平。
看到红色的“有效电平”了吧,那么这又是谁定义的呢?别急,再看手册,可知它是由CCER这个寄存器的CCxP位来决定的,这里是通道2所以是CC2P,继续看介绍  教材P253
CC2P:输入/捕获2输出极性(Capture/Compare 2 output polarity) CCER寄存器第二位 
CC2通道配置为输出,OC2REF经过output control(输出控制模块)转换为OC2的输出,所以OC2的输出是参考了OC2REF的值经过一个输出控制模块转换以后的值,转换过程如下:
0:OC2 输出比较有效极性高=有效电平(OC1REF=1)对应的OC2输出高电平(不反向)
1:OC2 输出比较有效极性低=有效电平(OC1REF=1)对应的OC2输出低电平(反向)
现在很清楚了吧,又因为第3句,TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高,所以这里我们设置的CC2P是0,也就是默认的OC2高电平有效。
  我的开发板的LED是低电平亮,刚开始CCR2寄存器的值设为0,TIMx_CNT>=TIMx_CCR2,OC2REF输出1对应的OC2输出高电平,会看到刚开始上电,LED灯由不亮逐渐变来亮的现象

0 0
原创粉丝点击