STM32 高级定时器 最近在研究电机,对TIM定时器研究了一些,将一些存在疑惑的问题,通过试验和示波器分析,得到以下结论,供大家学习参考
1.介绍输出电压高低判断
输出比较时:OC1对外输出电压为示波器可以读取的电压,也是我们最终使用的电压,在这个电压输出前,有很多的配置,如下图
在工作状态时,首先是设置模式。
对应这句TIM_OCInitStructure.OCMode = TIM_OCMODE_PWM2;
比较方法满足后,就根据模式的判断输出相对应的参考电平,参考电平的高低是确定死的
,相应的值通过你自己设置的比较模式去判断得到参考电平。
然后我们还会配置极性
对应这句 TIM_OCInitStructure.OCPolarity = TIM_OCPOLARITY_HIGH;
极性就是确定参考电平的高低电压来了后,通过我们设置的极性为那种有效,最终决定最终对外输出的电压值值。
TIM_TimeBaseStructure.Init.CounterMode = TIM_COUNTERMODE_UP;
这句就是设置计数是递增还是递减、或者中心模式,也会决定参考电平的高低,详细看参考电平模式详解。
2.周期、频率
定时器计数器的频率计算
名称解释:
TIMxCLK
(总线的频率F103 高级定时器72Mhz F407为84Mhz)
PSC
:分频因子 一般设置10,系统会认为是11,所以设置时为 PSC=【(你期望的值)-1】
为啥是这个样子,系统设定的,详见参考手册
ARR
:重装载寄存器