关于STM32在程序中间修改PWM值的总结(原创)


首先在STM32库函数里有这样一个函数
void TIM3_PWM_Init(u16 arr,u16 psc)
 
若TIM3_PWM_Init(7200,100)//设置频谱7200.分频100
 
我们初始化定时器得到得频率为PWM频率=72000000/7200=10000hz   10000/100=100hz;
TIM_SetCompare2(TIM3,pwmval);函数调节占空比;
占空比为arr/pwmval;
 
占空比在主循环里可修改通过TIM_SetCompare2(TIM3,pwmval);
 
若想要在程序进程中修改频率需要函数TIM_SetAutoreload(TIM3,arr); 
这个函数就是手动更改 TIMx->ARR 的意思     
使能预装载ARPE 可以保证ARR在 更新事件到来时(或者你说的周期结束) 被 送到影子寄存器
如果不使能ARPE,  写入的ARR值立即生效;
 
所以最终在程序进程中修改我们的pwm需要通过
TIM_SetCompare2(TIM3,pwmval);
TIM_SetAutoreload(TIM3,arr);
两个函数实现。

 

转载于:https://www.cnblogs.com/smartkeke/p/6820418.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值