赞
踩
title: HALPWM配置占空比频率
tags:
1.STM32CubeMX学习笔记(13)——PWM输出(呼吸灯)使用
2.STM32标准库+HAL库 | 高精度动态调节PWM输出频率+占空比
uint16_t prescaler
uint64_t tim_clk_freq
void set_pwm_param(TIM_HandleTypeDef htim, uint32_t Channel, uint32_t freq, uint16_t duty) { uint16_t prescaler = 72-1; uint64_t tim_clk_freq = 72000000; //计算PWM频率,所对应的自动重装载 ---> ARR = 主频 / (预分�?+1) / 预期PWM频率(Hz) - 1 float pwm_freq_arr = (tim_clk_freq * 1.0) / (prescaler+1) / freq * 1.0 - 1; //计算PWM占空比,对应比较寄存器的 ---> CCR = 预期占空�? * (自动重装载�??+1) //占空比则由捕/比较寄存器(TIMx_CRx)寄存器决定。占空比:duty = Pluse / (ARR+1) float pwm_duty_pulse = duty * 1.0 / 100 * (pwm_freq_arr + 1); //配置PSC预分频 __HAL_TIM_SET_PRESCALER(&htim, prescaler); //配置PWM频率 ARR __HAL_TIM_SetAutoreload(&htim, (uint16_t)pwm_freq_arr); //配置PWM占空比 __HAL_TIM_SetCompare(&htim, Channel, (uint16_t)pwm_duty_pulse); // printf("pwm_freq_arr:%.2f\r\n", pwm_freq_arr); // printf("pwm_duty_pulse:%.2f\r\n", pwm_duty_pulse); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。