预分频值(prescaler)和时钟分频因子(ClockDivision)有什么区别?

本文详细阐述了定时器中的预分频系数(Prescaler)如何将APBx时钟频率进行分频,为定时器提供稳定的时钟源,同时ClockDivision介绍其在输入捕获中的滤波作用。了解这两者在硬件设计中的关键作用,提升对时钟管理的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### STM32 TIM时钟分频 (Clock Division) 预分频(Prescaler) #### 定义 在STM32微控制器中,定时器(Timer, TIM)模块用于生成精确的时间间隔或PWM信号。为了灵活控制这些时间间隔,TIM提供了两种主要的分频机制:时钟分频(Clock Division)预分频(Prescaler)[^1]。 #### 时钟分频 (Clock Division) `ClockDivision`参数主要用于处理输入捕捉功能中的滤波需求。当外部事件触发输入捕捉时,该参数可以指定对输入信号进行多少次采样才认为是一次有效的边沿变化。这有助于消除噪声干扰,提高捕捉精度。具体来说: - `0`: 输入不被过滤; - `1`, `2`, 或 `3`: 表示分别需要连续检测到相同电平状态改变4、8或16次之后才会确认一次有效边缘转换[^3]。 ```c // 设置时钟分频为1(即实际效果为4) TIM->CR1 |= TIM_CR1_CKD_0; ``` #### 预分频(Prescaler) 相比之下,`Prescaler`的作用是对来自APB总线的时钟源频率进行初步降低后再供给定时器使用。通过设置不同的预分频系数,可以使定时器的工作频率适应更广泛的应用场景。例如,在72 MHz系统下配置一个二分频(即将原有时钟除以2),则最终提供给定时器的实际频率变为36 MHz;同理可实现三分频等其他形式的降频操作[^2]。 ```c // 将预分频设定为7199,则定时器每秒钟计数一次 TIM->PSC = 7199; // 假设APB1时钟为72MHz ``` #### 主要区别 两者虽然都涉及到频率调整,但在应用场景上有明显差异: - **作用对象不同**:`ClockDivision`针对的是输入信号的质量优化,而`Prescaler`则是对整个定时器工作的基础频率进行调节。 - **影响范围各异**:前者仅限于特定条件下改善数据采集准确性,后者决定了所有基于此定时器的操作周期长短。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学无止境2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值