⏱️ STM32 定时器 4.000 ms 计算:主频36MHz PSC=35 ARR=3999

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

TIM_HandleTypeDef htim;

void MX_TIM2_Init(void){
    __HAL_RCC_TIM2_CLK_ENABLE();

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

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

// 定时中断回调(每 4.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 💬 0 条评价 💰 0 次打赏
✍️ 这个计算结果有用吗?
点击星评价
实名注册用户可彰显昵称,游客用随机名
💰 如果这个工具帮到了你
扫码打赏支持持续更新,让更多工程师用上免费工具
🧰 更多工具
🔗 波特率计算器 📊 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 定时器 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 定时器 2.000 ms 计算:主频72MHz PSC=71 ARR=1999 STM32 定时器 500.0 µs 计算:主频72MHz PSC=71 ARR=499
▶ 回到计算器继续算 →