STM32F4官方文档关于定时器时钟自动倍频的说明

‌在用正点模板时,默认TIM3_CLK=84MHZ,怎么来的呢,本文解决你的疑惑。

根据STM32F4系列参考手册(RM0090)中的时钟树描述,定时器时钟(如TIM3)遵循以下规则:

  1. ‌APB1分频系数与定时器时钟关系‌:

    • 若 APB1分频系数(PPRE1)= 1,定时器时钟频率等于 PCLK148。
    • 若 PPRE1 ≠ 1(如2/4/8/16),定时器时钟频率 ‌自动倍频‌,即:TIM3时钟=PCLK1×2TIM3时钟=PCLK1×2该逻辑由硬件实现,无需软件干预57。
  2. ‌具体实现原理‌

    • ‌时钟路径 ‌:

      复制代码

      plaintextCopy Code

      SYSCLK → HCLK → APB1分频器 → PCLK1 → 硬件自动倍频 → TIM3时钟
      当APB1分频系数为4时:PCLK1=HCLK4⇒TIM3时钟=PCLK1×2=HCLK2PCLK1=4HCLK⇒TIM3时钟=PCLK1×2=2HCLK例如,若 HCLK=168MHz,则 TIM3_CLK=84MHz。


‌验证方法‌

  1. ‌官方手册章节‌:

    • ‌参考文档 ‌:STM32F4xx参考手册(RM0090)的 ‌RCC章节(Clock Configuration) ‌ 和 ‌**通用定时器章节(General-purpose timers)**‌。
    • ‌关键描述 ‌: If the APB1 prescaler (PPRE1) is configured to a division factor of 2, 4, 8 or 16, the TIMxCLK frequency is multiplied by 2.
  2. ‌实际配置验证‌

    • 设置 APB1分频系数=4 后,调用 HAL_RCC_GetPCLK1Freq() 获取 PCLK1 值,并通过公式计算 TIM3时钟频率78。
      示例代码:

      复制代码

      cCopy Code

      uint32_t pclk1 = HAL_RCC_GetPCLK1Freq(); // 返回42MHz(当HCLK=168MHz时) uint32_t tim3_clk = pclk1 * 2; // TIM3时钟=84MHz

相关推荐
szxinmai主板定制专家6 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
泛凡(Linyongui)10 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
糖糖单片机设计11 小时前
基于单片机的热水器节能控制系统
单片机·嵌入式硬件
金色光环14 小时前
【DSP学习】C2000_PWM中断程序_笔记
笔记·单片机·学习
智购科技智能售货柜15 小时前
顾客已经关门,视觉售货柜还在处理旧画面:延迟积压怎么查?~YH
python·单片机·嵌入式硬件·物联网·eclipse
糖糖单片机设计15 小时前
基于 STM32 的智能电蚊香控制系统
stm32·单片机·嵌入式硬件
zhangrelay16 小时前
Arduino-MEGA-ESP单片机理论课笔记-01入门-02硬件-03开发环境-2026
笔记·单片机·嵌入式硬件·学习·机器人
AlanAshley17 小时前
手机与电脑的屏幕计时器熄屏区别及协议栈
单片机·智能手机·电脑
AlanAshley17 小时前
电脑烧屏的软件与硬件原因全解析
单片机·嵌入式硬件·电脑
ScilogyHunter18 小时前
Hercules系列安全MCU功能安全原理详解
java·单片机·安全·hercules