STM32 定时器
## 预分频器(TIMx_PSC)
预分频器的值 PSC,计数器的时钟频率 CK_CNT 等于 fCK_PSC/(PSC+1)。也就是说 PSC 等于分频数 - 1。
## 自动重装载寄存器(TIMx_ARR)
自动重装载的值 ARR,用于作为计数器的初始值(向下计数)或溢出值(向上计数)。下图的 ARR 被设置为 0x36,溢出发生在计数值为 0x36 的后部,所以实际计数了 0x37 个数(从 0 开始)。所以 ARR 的值应该为 计数值 - 1。
![](https://file.mculoop.com/images/2024/01/01/202401010132753.png)
## PWM
**PWM 模式 1**
在向上计数时,一旦 TIMx_CNT < TIMx_CCR1 时通道 1 为有效电平,否则为
无效电平;在向下计数时,一旦 TIMx_CNT > TIMx_CCR1 时通道 1 为无效电平(OC1REF=0),否
则为有效电平(OC1REF=1)。
**PWM 模式 2**
在向上计数时,一旦 TIMx_CNT < TIMx_CCR1 时通道 1 为无效电平,否则为
有效电平;在向下计数时,一旦 TIMx_CNT > TIMx_CCR1 时通道 1 为有效电平,否则为无效电
平。
CC1P:输入/捕获 1 输出极性(Capture/Compare 1 output polarity)
CC1 通道配置为输出:
0:OC1 高电平有效TIM_OCPolarity_High
1:OC1 低电平有效TIM_OCPolarity_Low
例如:
```c
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //PMW模式1(向上计数时CNT < CCR2时输出低电平)
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = TIM_TimeBaseStructure.TIM_Period / 2; //50%占空比
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //低电平为有效电平
TIM_OC2Init(TIM2, &TIM_OCInitStructure);
```
页:
[1]