关于STM32在程序中间修改PWM值的总结(原创)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
请您及时更换请请请您正在使用的模版将于2周后被下线请您及时更换
关于 STM32在程序中间修改 PWM值的总结(原创)
首先在STM32库函数里有这样一个函数 void TIM3_PWM_Init(u16 arr,u16 psc)
若TIM3_PWM_Init(7200,100)//设置频谱7200.分频100
若想要在程序进程中修改频率需要函数TIM_SetAutoreload(TIM3,arr); 这个函数就是手动更改 TIMx->ARR 的意思 使能预装载ARPE 可以保证ARR在 更新事件到来时(或者你说的周期结束) 被 送到影子寄存器 如果不使能ARPE, 写入的ARR值立即生效;
所以最终在程序进程中修改我们的pwm需要通过 TIM_SetCompare2(TIM3,pwmval); TIM_SetAutoreload(TIM3,arr); 两个函数实现。
我们初始化定时器得到得频率为PWM频率=72000000/7200=10000hz 10000/100=100hz; TIM_SetCompare2(TIM3,pwmval);函数调节占空比; 占空比为arr/pwmval;
占空比在3,pwmval);
关于 STM32在程序中间修改 PWM值的总结(原创)
首先在STM32库函数里有这样一个函数 void TIM3_PWM_Init(u16 arr,u16 psc)
若TIM3_PWM_Init(7200,100)//设置频谱7200.分频100
若想要在程序进程中修改频率需要函数TIM_SetAutoreload(TIM3,arr); 这个函数就是手动更改 TIMx->ARR 的意思 使能预装载ARPE 可以保证ARR在 更新事件到来时(或者你说的周期结束) 被 送到影子寄存器 如果不使能ARPE, 写入的ARR值立即生效;
所以最终在程序进程中修改我们的pwm需要通过 TIM_SetCompare2(TIM3,pwmval); TIM_SetAutoreload(TIM3,arr); 两个函数实现。
我们初始化定时器得到得频率为PWM频率=72000000/7200=10000hz 10000/100=100hz; TIM_SetCompare2(TIM3,pwmval);函数调节占空比; 占空比为arr/pwmval;
占空比在3,pwmval);