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

相关推荐
星辰pid2 小时前
STM32实现四自由度机械臂(SG90舵机)多功能控制(软件篇freertos)
stm32·单片机·嵌入式硬件·机械臂
森焱森7 小时前
水下航行器外形分类详解
c语言·单片机·算法·架构·无人机
小殷学长9 小时前
【单片机毕业设计17-基于stm32c8t6的智能倒车监测系统】
stm32·单片机·课程设计
TESmart碲视11 小时前
HKS201-M24 大师版 8K60Hz USB 3.0 适用于 2 台 PC 1台显示器 无缝切换 KVM 切换器
单片机·嵌入式硬件·物联网·游戏·计算机外设·电脑·智能硬件
花落已飘12 小时前
STM32中实现shell控制台(shell窗口输入实现)
stm32·单片机·嵌入式硬件
花落已飘12 小时前
STM32中实现shell控制台(命令解析实现)
stm32·shell
没有钱的钱仔12 小时前
STM32低功耗模式全面指南
css·stm32·css3
牵牛老人14 小时前
Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用
stm32·单片机·qt
宇钶宇夕15 小时前
针对工业触摸屏维修的系统指南和资源获取途径
单片机·嵌入式硬件·自动化
和风化雨16 小时前
stm32的三种开发方式
stm32·单片机·嵌入式硬件