STM32 学习笔记(5):通用定时器PW M 输出 1. TIMER 输出PW M 基本概念 脉冲宽度调制(PWM),是英文“Pu lse Width Modu lation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。 STM32 的定时器除了 TIM6 和 TIM7 之外,其他的定时器都可以用来产生 PWM输出,其中高级定时器TIM1 和 TIM8 可以同时产生 7 路的 PWM 输出,而通用定时器也能同时产生 4 路的 PWM 输出。 1.1 PW M 输出模式 STM32 的 PWM 输出有两种模式,模式 1 和模式 2,由 TIMx _CCMRx 寄存器中的 OCx M 位确定的(“110”为模式 1,“111”为模式 2)。模式 1 和模式 2 的区别如下: 110:PWM 模式 1-在向上计数时,一旦 TIMx _CNTTIMx _CCR1 时通道 1 为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。 111:PWM 模式 2-在向上计数时,一旦 TIMx _CNTTIMx _CCR1 时通道 1 为有效电平,否则为无效电平。 由此看来,模式 1 和模式 2 正好互补,互为相反,所以在运用起来差别也并不太大。 而从计数模式上来看,PWM 也和 TIMx 在作定时器时一样,也有向上计数模式、向下计数模式和中心对齐模式,关于 3 种模式的具体资料,可以查看《STM32参考手册》的“14.3.9 PWM 模式”一节,在此就不详细赘述了。 1.2 PW M 输出管脚 PWM 的输出管脚是确定好的,具体的引脚功能可以查看《STM32 参考手册》的“8.3.7 定时器复用功能重映射”一节。在此需要强调的是,不同的TIMx 有分配不同的引脚,但是考虑到管脚复用功能,STM32 提出了一个重映像的概念,就是说通过设置某一些相关的寄存器,来使得在其他非原始指定的管脚上也能输出PWM。但是这些重映像的管脚也是由参考手册给出的。比如说TIM3 的第2个通道,在没有重映像的时候,指定的管脚是PA.7,如果设置部分重映像之后,TIM3_CH2 的输出就被映射到PB.5 上了,如果设置了完全重映像的话,TIM3_CH2 的输出就被映射到PC.7 上了。 1.3 PW M 输出信号 PWM 输出的是一个方波信号,信号的频率是由TIMx的时钟频率和TIMx_ARR预分频器所决定...