定时器ARR的作用

ARR(Auto-Reload Register,自动重装载寄存器)是定时器的核心控制单元之一,与PSC(预分频器)共同构建定时器的完整计时逻辑。以下是其核心作用及与PSC的协同关系解析:


一、ARR的核心作用

功能维度 具体作用 应用场景示例
周期控制 定义计数器从0递增到ARR值的完整周期,即定时周期 = (ARR + 1) × 分频后时钟周期 1ms定时中断(ARR=999,PSC=71 @72MHz)
PWM波形基准 作为占空比的分母:占空比 = CCRx / (ARR + 1) 50%占空比时CCRx = (ARR+1)/2
中断触发源 计数器达到ARR时触发更新事件(UEV),可生成中断或DMA请求 周期性ADC采样触发
计数边界限制 限制计数器最大值,防止溢出失控(例如在编码器模式下限定机械行程范围) 电机旋转角度限制(ARR=360对应1圈)

二、ARR与PSC的协同关系

1. 频率生成公式

输出频率 = 定时器输入时钟 / (PSC + 1) / (ARR + 1)

  • PSC:粗调频率范围(降低时钟频率)
  • ARR :细调周期精度(定义计数步长)
    示例
    若需生成1kHz方波(72MHz主频):
    PSC = 71 → 分频后时钟1MHz
    ARR = 999 → 周期1ms(1000Hz)
2. 精度与频率的权衡
需求 调整策略 典型场景
高频率输出 减小ARR,增大PSC(牺牲占空比精度) 超声波驱动信号(40kHz)
高占空比精度 增大ARR,减小PSC(牺牲频率上限) 伺服电机控制(0.1°分辨率需ARR≥3600)

三、ARR的硬件特性与配置技巧

  1. 动态重装载
    • 预装载使能TIMx->CR1.ARPE=1):ARR修改在下一个周期生效,避免计数中途跳变
    • 立即更新TIMx->EGR.UG=1):强制立即应用新ARR值(可能引发波形抖动)
  2. 特殊模式行为
    • 中心对称模式 (中央对齐):实际有效周期为2×ARR(计数器上下计数)
    • 单脉冲模式:ARR定义单次计数终点,触发后自动停止计数器
  3. 物理位宽限制
    • 16位定时器:ARR范围0-65535
    • 32位扩展模式(级联):ARR可扩展至0-4,294,967,295

四、常见误区与避坑指南

  1. 占空比失效 :若CCRx > ARR,PWM输出可能恒高/恒低(取决于极性配置)
  2. 周期跳变风险:运行中修改ARR时未启用预装载,可能导致计数器值(CNT)与ARR错位
  3. 中断遗漏:ARR值过小可能导致中断频率超过CPU处理能力(需结合NVIC优先级优化)

总结

ARR是定时器的周期标尺,与PSC共同构建频率和占空比的控制体系。其核心价值在于:

  1. 定义时间基准:为中断、PWM、捕获等提供周期性触发源
  2. 硬件级同步:通过预装载机制实现无抖动的动态参数调整
  3. 资源效率优化:通过ARR/PSC组合平衡频率与精度需求

实际开发中,建议通过公式反推ARR = (目标周期 × 分频后时钟频率) - 1,并结合预装载功能保障稳定性。

相关推荐
KaifuZeng4 分钟前
电源面试问题汇总三
单片机·嵌入式硬件·面试·电路
lhbweilai1 小时前
STM32 定时器(hal库)
stm32·单片机·嵌入式硬件
ACP广源盛139246256731 小时前
Qwen3.8-Max 开源预期下@ACP#企业级终端硬件演进机遇与 PCIe 交换芯片落地分析
大数据·人工智能·分布式·单片机·嵌入式硬件
别催小唐敲代码1 小时前
STM32 MQTT协议详解:从报文地狱到阿里云实战
stm32·嵌入式硬件·阿里云
2401_827501281 小时前
Linux系统移植
linux·arm开发·单片机
时光の尘2 小时前
【凌鸥LKS32】基础篇(二)·Timer定时器实现LED闪烁
单片机·mcu·物联网·iot·timer·lks07
Lzh编程小栈3 小时前
【STM32底层精讲】RCC时钟系统超全详解(时钟树+源码+避坑指南)
c语言·stm32·单片机·嵌入式硬件·面试
蓝斯49717 小时前
从.到实现一个Windows上的虚拟hid键盘设备
windows·单片机·计算机外设
熙芯XiChip18 小时前
硬实时与软实时RTOS核心区别
嵌入式硬件
伟大的前程18 小时前
unsigned int 定义的变量 在 电脑的 64 位系统中 和 32 位 cortex-m0 和 8 位的 51 单片机
单片机·嵌入式硬件