STM32的PWM和DAC练习
一、STM32 采用定时器的方法输出 PWM 波形
1、PWM的介绍
PWM(脉冲宽度调制)控制技术
通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。
PWM 控制的基本原理
冲量相等而开头不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。其中冲量指窄脉冲的面积;效果相同指环节输出响应波形基本相同。
参考例子
用一系列等幅不等宽的脉冲来代替一个正弦半波
其划分方式是将正弦半波分成 N 等分,可看成 N 个彼此相连的脉冲序列,宽度相等,但幅值不等;接下来使用矩形脉冲代替,而各个矩形脉冲等幅,不等宽,中点与脉冲序列重合,脉冲宽度按正弦规律变化,脉冲的总面积(冲量)与正弦半波相等。这个脉冲波形被称为 SPWM 波形,是一种极其典型的PWM波形。
2、了解定时器实现PWM波形输出
1.PWM工作过程
寄存器的值从0开始到ARR值的过程中,当其比CCRx中的值小的时候,输出低电平(0),当其值大于CCRx值时,输出高电平(1)。从图中可以看出周期是由ARR决定的,跟定时器的时钟有关系,而占空比则跟CCRx有关。
2.PWM的通道
①CCR1寄存器:捕获/比较值寄存器:设置比较值;
②CCMR1寄存器:OC1M[2:0]位:对于PWM方式下,用于设置PWM模式1或者PWM模式2;
③CCER寄存器:CC1P位:输入/捕获1输出极性。0:高电平有效,1:低电平有效。
④CCER寄存器:CC1E位:输入/捕获1输出使能。0:关闭,1:打开。
PWM输出的模式区别
通过设置寄存器TIMx_CCMR1的OC1M[2:0]位来确定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为有效电平,否则为无效电平。
注意:并未说明1就表示有效电平
PWM输出的模式区别
通过设置寄存器TIMx_CCMR1的OC1M[2:0]位来确定PWM的输出模式:
PWM模式1:在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0)ÿ