登录/注册

STM32PWM频率快捷更改

STM32PWM频率快捷更改

更多

在STM32中快速更改PWM频率的步骤如下:

核心思路

PWM频率由定时器的时钟源、预分频器(PSC)和自动重载寄存器(ARR)共同决定。公式为: [ \text{频率} = \frac{\text{定时器时钟频率}}{(\text{PSC} + 1) \times (\text{ARR} + 1)} ] 通过调整 ARRPSC 的值即可改变频率。


方法1:通过HAL库函数修改

// 停止定时器
HAL_TIM_PWM_Stop(&htimX, TIM_CHANNEL_Y);

// 计算并设置新ARR和PSC(例如目标频率为1kHz)
uint32_t timer_clk = HAL_RCC_GetPCLK1Freq(); // 获取定时器时钟
uint32_t target_freq = 1000;
uint32_t psc = 0; // 根据实际需求调整分频
uint32_t arr = (timer_clk / (psc + 1)) / target_freq - 1;

htimX.Instance->ARR = arr;       // 修改ARR
htimX.Instance->PSC = psc;       // 修改预分频器(可选)
HAL_TIM_PWM_Start(&htimX, TIM_CHANNEL_Y); // 重启定时器

方法2:寄存器级操作(更高效)

// 不停止定时器,通过预装载功能更新参数
TIM_TypeDef *timer = htimX.Instance;
timer->CR1 &= ~TIM_CR1_ARPE;     // 关闭ARR预装载(可选)
timer->ARR = new_arr_value;      // 直接写入ARR
timer->PSC = new_psc_value;      // 修改预分频器(可选)
timer->EGR |= TIM_EGR_UG;        // 手动触发更新事件,立即生效

保持占空比不变

若需频率变化时保持占空比,需同步调整 CCR(捕获/比较寄存器):

float duty_cycle = (float)current_ccr / (current_arr + 1);
uint32_t new_ccr = (uint32_t)(duty_cycle * (new_arr + 1));
timer->CCR1 = new_ccr; // 假设使用通道1

注意事项

  1. 预分频器(PSC):修改会影响所有通道频率,适合大范围调整。
  2. ARR:修改仅影响频率,但需注意占空比同步。
  3. 影子寄存器:启用 TIM_CR1_ARPE 可延迟更新到下一个周期,避免信号毛刺。

通过合理组合 ARRPSC,可实现快速且稳定的PWM频率调整。

STM32C562开发(4)----输出PWM及修改频率与占空比

定时器是 MCU 中非常常用的外设之一,可以用于周期定时、PWM 输出、输入捕获、输出比较、电机控制等场景。本文基于 STM32C562CET6,使用 STM

2026-06-23 16:55:48

STM32CUBEMX开发GD32F303(12)----输出PWM及修改PWM频率与占空比

本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过开发板内进行验证。 本章主要配置定时器输出PWM,同

2022-11-30 14:40:07

STM32CUBEIDE(11)----输出PWM及修改PWM频率与占空比

本章STM32CUBEMX配置STM32F103输出PWM,并在示波器中查看效果。

2022-11-30 14:12:45

STM32 PWM输出延迟问题

事件原因:PWM正常初始化,监听串口数据,根据上位机通讯协议,更改PWM的频率

资料下载 李娜 2021-12-24 18:57:38

STM32 PWM任意频率计算

STM32 PWM任意频率计算以STM32F103为例总频是72M,定时

资料下载 哈哈哈 2021-12-02 18:06:06

STM32PWM与示波器实验

STM32PWM与示波器实验STM32输出PWM波形1、PWM(脉冲宽度

资料下载 而无返还 2021-12-02 13:21:09

STM32产生固定频率和占空比可变的PWM

讲述如何设置PWM波的频率和初始占空比,以及如何实现占空比可调的PWM。本文中笔者使用的

资料下载 吴藩 2021-12-01 13:36:10

基于STM32f103的FFT频率测试程序下载

基于STM32f103的FFT频率测试程序下载

资料下载 shyshyshy 2021-08-02 10:07:20

STM32 PWM配置完成

前提:STM32PWM配置完成(这里是通道4),PWM设置越大,屏幕背光越亮PWM调节函数:__HAL_TIM_SetCompare(&

2022-01-14 07:20:19

stm32 pwm自动计算定时器配置工具相关资料下载

stm32pwm自动计算定时器配置工具

2022-01-12 07:05:03

stm32pwm和dac 精选资料分享

stm32pwm和dac一、PWM练习Keil软件仿真二、输出周期为2kHz的正炫波形三、数字音频转换为模拟音频一、PWM练习

2021-08-10 08:05:25

stm32PWM DAC原理

stm32PWM DAC原理简而言之:改变PWM占空比,利用DAC和ADC显示电压PWM本质上其实就是是一种周期一定,而高低电平占空比可调的方波

2021-07-20 08:23:51

STM32F4_TIM输出PWM波形 (可调频率、占空比)

STM32F4_TIM输出PWM波形(可调频率、占空比)

2020-03-24 11:26:07

STM32如何实现可调频率、 占空比的PWM波形,且可指定输出脉冲个数?

STM32如何实现可调频率、占空比的PWM波形,且可指定输出脉冲个数?

2020-03-12 11:04:06

7天热门专题 换一换
相关标签