stm32F103定时器的pwm输出模式的常用运算

 以下面的定时器2为例:

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;

	TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;

	TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;

	TIM_TimeBaseInitStructure.TIM_Period = 100 - 1; //ARR 自动重装器的值

	TIM_TimeBaseInitStructure.TIM_Prescaler = 72 - 1; //PSC 预分频器的值 对72M(720000000)进行 7200分频 即10K的频率下 计10000个数 1s的时间

	TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0;//重复计数器的值 CCR

	TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStructure); 

PWM频率计算公式:Fpwm = 主频 / ((ARR+1)*(PSC+1))(单位:Hz)

        Fpwm=72 000 000/(72*100)= 10000 hz =10KHZ

周期计算: Tpwm = 1/Fpwm = 0.0001S = 100us

占空比计算公式:duty circle = TIM2->CCR2 / ARR(单位:%)

void PWM_SetCompare2(uint16_t Compare)
{
    TIM_SetCompare2(TIM2,compare);
}

     上面这段函数是传参改变定时器2第二通道的占空比

上面ARR=100,假设传参20,占空比就是20/100=20%

知识扩展:

这个函数TIM_SetCompare2,这样函数有四个,分别是TIM_SetCompare1,TIM_SetCompare2,TIM_SetCompare3,TIM_SetCompare4。这些函数名后面的阿拉伯数字代表的是定时器的通道,看自己电路上设计的GPIO口对应定时器第几通道,就选对应的通道函数。
例如:使用PA11,是是定时器1通道4,设置占空比就是TIM_SetCompare4(TIM1,compare);

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值