定时器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,并结合预装载功能保障稳定性。

相关推荐
曙曙学编程3 小时前
stm32——GPIO
c语言·c++·stm32·单片机·嵌入式硬件
第二层皮-合肥4 小时前
FPGA实现ETH接口
单片机·嵌入式硬件·fpga开发
anghost1504 小时前
基于单片机的智能声控窗帘
单片机·嵌入式硬件·mongodb
璞致电子7 小时前
【PZ-ZU47DR-KFB】璞致FPGA ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常见问题说明
嵌入式硬件·fpga开发·fpga·软件无线电·sdr
陌夏微秋8 小时前
FPGA硬件设计2 最小芯片系统-ZYNQ7020/7010
嵌入式硬件·fpga开发·硬件架构·硬件工程·信息与通信·智能硬件
猫猫的小茶馆8 小时前
【STM32】HAL库中的实现(五):ADC (模数转换)
stm32·单片机·嵌入式硬件·mcu·51单片机·智能硬件·pcb工艺
紫阡星影10 小时前
【模块系列】STM32&W25Q64
stm32·单片机·嵌入式硬件
keer_zu11 小时前
STM32L051同时处理Alarm A和Alarm B中断
stm32·单片机·嵌入式硬件
酷飞飞12 小时前
STC8单片机驱动I2C屏幕:实现时间、日期与温湿度显示
单片机·嵌入式硬件·51单片机·嵌入式
源远流长jerry15 小时前
STM32之MCU和GPIO
linux·c++·stm32·单片机·嵌入式硬件