蓝桥杯嵌入式——动态调整PWM输出频率和比较值(占空比)

动态调整PWM输出频率和比较值(占空比)

__HAL_TIM_SET_AUTORELOAD(&htim3, (1000000 / freq) - 1);//设置定时器 TIM3 的周期(即 PWM 信号的频率)

在cube中设定时器通道TimxChy的PSC为80-1,ARR为1000-1,CCR为500(TIMx->CCRy=500)

定时器 TIM3 的时钟源为 1MHz(即每秒计数 1,000,000 次)

每个计数的时间为 1 / 1,000,000 = 1μs(1 微秒)

T=(ARR+1)*计数时间=1/f

----------->ARR=(1000000/f)-1

  • 如果定时器实际时钟不是 1MHz,需调整公式中的 1,000,000
  • 例如时钟为 84MHz,则公式应为 84,000,000 / freq - 1
  • 如果频率过高导致 ARR 值超出寄存器范围(如 16 位定时器最大 ARR=65535),需限制频率下限

__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_2, 0.1*(__HAL_TIM_GET_AUTORELOAD(&htim3)+1));

__HAL_TIM_GET_AUTORELOAD(&htim3):获取当前 ARR 值(即上一步设置的 ARR)

+1:将 ARR 转换为总步数(因为 ARR 是最大值,实际周期是 ARR+1)

占空比:CCR/(ARR+1)

---------------->CCR/(ARR+1)=0.1(设置占空比为10%)-------->CCR=0.1*(ARR+1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值