⏱️ STM32 定时器 2.000 ms 计算:主频72MHz PSC=71 ARR=1999

工具计算永久页 · 服务端已算好结果,可收藏、可分享、可被搜索引擎收录
📐 本次计算结果
主频 fck=72 MHz,预分频 PSC=71,重装载 ARR=1999。 定时周期:2.000 ms(0.002000 秒) 中断频率:500 Hz 公式:定时周期 = (PSC+1) × (ARR+1) / fck
👁 22 次查看 · 2026-08-14 00:50 生成
📋 生成的代码(可复制)
// TIM2 基本定时中断(HAL 库生成)
// 定时 2.000 ms,中断频率 500.00Hz
// 主频 fck=72MHz PSC=71 ARR=1999

TIM_HandleTypeDef htim;

void MX_TIM2_Init(void){
    __HAL_RCC_TIM2_CLK_ENABLE();

    htim.Instance = TIM2;
    htim.Init.Prescaler = 71;       // PSC
    htim.Init.CounterMode = TIM_COUNTERMODE_UP;
    htim.Init.Period = 1999;          // ARR
    htim.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
    HAL_TIM_Base_Init(&htim);
}

// 启动(在主函数调用)
HAL_TIM_Base_Start_IT(&htim);

// 定时中断回调(每 2.000 ms 执行一次)
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
    if (htim->Instance == TIM2) {
        // TODO: 你的周期任务
    }
}
💡 原理解释
这个定时周期由三个参数决定:定时器时钟 fck(MHz)、预分频 Prescaler(PSC) 和重装载值 AutoReload(ARR)。时钟先经 PSC+1 分频,再计数 ARR+1 次,所以一次完整定时周期 = (PSC+1)×(ARR+1)/fck。例如 fck=72MHz、PSC=71、ARR=999 时,(72)×(1000)/72MHz = 1 毫秒,中断频率正好 1kHz。调整 ARR 可精确改变定时间隔,这是 STM32 定时中断最常用的配置方式。
⭐ 评分 5/5 💬 1 条评价 💰 2 次打赏 · 共 ¥15.00
✍️ 这个计算结果有用吗?
点击星评价
实名注册用户可彰显昵称,游客用随机名
单片机爱好者76 ★★★★★ 2026-08-14 00:53
这个定时器计算很准确,HAL代码生成太方便了!
💰 如果这个工具帮到了你
扫码打赏支持持续更新,让更多工程师用上免费工具
🧰 更多工具
🔗 波特率计算器 📊 ADC 转换 ⏰ 时钟分频计算 📌 引脚功能查询 🎛️ PWM 频率/占空比
🔗 相关计算
STM32 定时器 805.5 µs 计算:主频86MHz PSC=68 ARR=1003 Arduino 定时器 1ms 计算(timer0):OCR=15,预分频64µs Arduino 定时器 500ms 计算(timer1):OCR=7812,预分频64µs STM32 定时器 4.000 ms 计算:主频36MHz PSC=35 ARR=3999 STM32 定时器 10.0 µs 计算:主频72MHz PSC=0 ARR=719 STM32 定时器 1.000 ms 计算:主频168MHz PSC=167 ARR=999 STM32 定时器 1.000 ms 计算:主频8MHz PSC=79 ARR=99 STM32 定时器 500.0 µs 计算:主频72MHz PSC=71 ARR=499
▶ 回到计算器继续算 →