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

相关推荐
2401_8275012814 小时前
51单片机(二):GPIO、中断、定时器与PWM
单片机·嵌入式硬件·51单片机
ACP广源盛1392462567316 小时前
GSV6155@ACP# 搭配 AI 服务器、AI PC 完整适配方案
大数据·服务器·人工智能·分布式·单片机·嵌入式硬件
辰哥单片机设计18 小时前
STM32音乐播放器
stm32·单片机·嵌入式硬件
周洲083019 小时前
STM32 串口指令控制系统|上位机下发命令控制 LED、继电器,通用指令解析框架
stm32·嵌入式硬件·mongodb
集芯微电科技有限公司19 小时前
PC3100H 专为TFT-LCD面板偏置电源设计双输出100m电流
人工智能·单片机·嵌入式硬件·神经网络·生成对抗网络
广州灵眸科技有限公司20 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) 系统操作-线进程操作
数据库·单片机·嵌入式硬件·算法·php
集芯微电科技有限公司21 小时前
各种大小尺寸TFT-LCD面板供电偏压电源方案IC
人工智能·单片机·嵌入式硬件·神经网络·生成对抗网络
FREEDOM_X21 小时前
嵌入式——定时器工作原理
linux·c语言·单片机·嵌入式硬件·ubuntu
2401_827501281 天前
51单片机(三)串口通信(UART)、Modbus协议
单片机·嵌入式硬件·51单片机
振浩微433射频芯片1 天前
5个IO控制20个LED?查理复用实战拆解
网络·单片机·物联网·学习·智能家居