STM32 F7的定时器PWM输出和输入捕获相关频率计算公式整理

项目用到了

想做一个记录备忘

定时器支持的频率

STM32 F7的定时器PWM输出和输入捕获相关频率计算公式整理_第1张图片

默认情况下,都按最大接口时钟频率*2

特殊情况请看这个寄存器

STM32 F7的定时器PWM输出和输入捕获相关频率计算公式整理_第2张图片

STM32 F7的定时器PWM输出和输入捕获相关频率计算公式整理_第3张图片

做普通的定时

举例说明

需要一个 1s 周期的定时器
我们先设置 TIMx_ARR 寄存器值为 9999(10000-1)
即当 TIMx_CNT 从 0 开始计算,刚好等于 9999 时生成事件,总共计数 10000
那么如果此时时钟源周期为 100us 即可得到刚好 1s 的定时周期
 
TIMx_PSC 寄存器值使得 CK_CNT 输出为 100us 周期(10000Hz)
预分频器的输入时钟 CK_PSC 108MHz,所以设置预分频器值为(10800-1)即可
 

 

做PWM输出

注意TIM1和8与其他的通用定时器的时钟频率不一样

TIM8和1的定时器的时钟源频率是216MHz

其他的是108Mhz

 

以TIM1或8为例(不考虑分频)

定时器频率为=216Mhz/(TIM_Prescaler+1)
 

以其他的通用定时器为例

定时器频率为=108Mhz/(TIM_Prescaler+1)
 
 
定时器的定时周期(也就是以定时器的频率,计多少次数,算记满的意思)
占空比和这个定时周期有关系(50%就取定时周期的一半)
占空比为:(Pulse+1)/(Period+1),Pulse就是设置的寄存器值,Period是定时周期

 

做PWM输入捕获

一个定时器最多做一个PWM输入捕获,普通捕获可以做4路

TIM1或者TIM8

能够捕获的最低频率f=216MHz/定时周期(不考虑分频)

e.g 定时周期=65535的时候,最低支持捕获的频率216Mhz/65535 = 3295Hz

其他的定时器

能够捕获的最低频率f=108MHz/定时周期(不考虑分频)

e.g 定时周期=65535的时候,最低支持捕获的频率108Mhz/65535 = 1647Hz

 

 

 

你可能感兴趣的:(STM32)