STM32学习笔记(5):通用定时器PWM输出学习笔记():):通用定时器
1TIMER输出PWM基本概念
脉冲宽度调制PWM,是英文“PulseWidthModulatio
”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。
11PWM输出模式STM32的PWM输出有两种模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位确定的(“110”为模式1,“111”为模式2)。模式1和模式2的区别如下:110:PWM模式1-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平OC1REF0,否则为有效电平OC1REF1。111:PWM模式2-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平。由此看来,模式1和模式2正好互补,互为相反,所以在运用起来差别也并不太大。而从计数模式上来看,PWM也和TIMx在作定时器时一样,也有向上计数模式、向下计数模式和中心对齐模式,关于3种模式的具体资料,可以查看《STM32参考手册》的“1439PWM模式”一节,在此就不详细赘述了。
12PWM输出管脚PWM的输出管脚是确定好的,具体的引脚功能可以查看《STM32参考手册》的“837定时器复用功能重映射”一节。在此需要强调的是,不同的TIMx有分
f配不同的引脚,但是考虑到管脚复用功能,STM32提出了一个重映像的概念,就是说通过设置某一些相关的寄存器,来使得在其他非原始指定的管脚上也能输出PWM。但是这些重映像的管脚也是由参考手册给出的。比如说TIM3的第2个通道,在没有重映像的时候,指定的管脚是PA7,如果设置部分重映像之后,TIM3_CH2的输出就被映射到PB5上了,如果设置了完全重映像的话,TIM3_CH2的输出就被映射到PC7上了。
13PWM输出信号PWM输出的是一个方波信号,信号的频率是由TIMx的时钟频率和TIMx_ARR预分频器所决定的,具体设置方法在前面一个学习笔记中有详细的交代。而输出信号的占空比则是由TIMx_CRRx寄存器确定的。其公式为“占空比TIMx_CRRxTIMx_ARR100”,因此,可以通过向CRR中填入适当的数来输出自己所需的频率和占空比的方波信号。
2TIMER输出PWM实r