zoukankan      html  css  js  c++  java
  • 关于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);
    两个函数实现。
    Smartkeke
  • 相关阅读:
    学习进度条54
    学习进度条53
    学习进度条52
    学习进度条51
    学习进度条50
    学习进度条49
    学习进度条48
    学习进度条47
    学习进度条45
    线程池中的阻塞队列选择
  • 原文地址:https://www.cnblogs.com/smartkeke/p/6820418.html
Copyright © 2011-2022 走看看