16.4 HRTIM项目:高精度PWM波
# 16.4 HRTIM项目:高精度PWM波
本实验通过STM32F334的高精度定时器(HRTIM)生成100kHz/50%占空比的PWM波,对比STM32F103通用定时器的性能差异,验证HRTIM的超高分辨率特性。
# 16.4.1 STM32CubeMX配置
# 1. 工程基础配置
- 芯片型号:STM32F334C8T6
- 工程名称:
16 HRTIM
- 调试接口:SWD
- 主频设置:
- HCLK(系统主频):72MHz
- HRTIM时钟:144MHz(提高分辨率)

# 2. HRTIM配置
- 启用HRTIM1:
- 导航至
Timers
→ 双击HRTIM1
→ 启用定时器A(TA1)。
- 导航至
- 时基参数:
- 预分频系数(Prescaler Ratio):32
- 周期寄存器(Period):46080 → 输出频率100kHz
- 比较寄存器:
- CMP1xR值:23040 → 占空比50%
- 输出级配置:
- 极性:高电平有效
- 置位源:CMP1事件
- 复位源:计数器翻转事件


# 16.4.2 HRTIM项目软件设计
# 1. 启动HRTIM输出
在main.c
中添加以下代码,启动PWM输出:
/* USER CODE BEGIN 2 */
HAL_HRTIM_WaveformOutputStart(&hhrtim1, HRTIM_OUTPUT_TA1);
HAL_HRTIM_WaveformCountStart(&hhrtim1, HRTIM_TIMERID_TIMER_A);
/* USER CODE END 2 */
1
2
3
4
2
3
4
# 2. 动态调整占空比
通过修改比较寄存器值验证分辨率:
while(1) {
hhrtim1.Instance->sTimerxRegs[0].CMP1xR = 23040; // 占空比50%
hhrtim1.Instance->sTimerxRegs[0].CMP1xR = 23041; // 最小步长+1
}
1
2
3
4
2
3
4
# 16.4.3 HRTIM项目下载验证
# 1. 静态精度测试
STM32F103:
- 频率误差:-0.14%(99.86kHz)
- 占空比误差:-0.08%(49.92%)
STM32F334:
- 频率精确:100.0kHz
- 占空比精确:50.00%
# 2. 动态分辨率测试
STM32F103:
- 最小分辨率:2.2ns(示波器残影)
- 最小分辨率:2.2ns(示波器残影)
STM32F334:
- 最小分辨率:217ps(理论值)
- 实测残影:约200ps
# 关键结论
- HRTIM优势:
- 分辨率达皮秒级(217ps),比通用定时器提升10倍。
- 适用于数字电源、电机控制等高精度场景。
- 实验验证:通过动态调整占空比,示波器残影直观反映时间分辨率差异。
说明:
预分频系数32与周期值46080的关系:
比较寄存器步长1对应时间(实际分辨率为217ps,HRTIM特性):