脉冲宽度调制(Pulse width modulation,即PWM)是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。广泛应用在从测量、通信到功率控制与变换的许多领域中。
实验要求为利用定时器输出的PWM脉冲,控制LED0进行类似手机呼吸灯的闪烁。
首先我们要确定PWM脉冲的周期由以下公式确定Tout=(ARR+1)*(PSC+1)/Ft(单位为us,我们最好转化为ms),即我们之前的定时器的周期公式。Ft为我们定时器的时钟信号来源APB1的72MHz,PSC为预分频系数,ARR为我们的自动装载系数。后两个参数是需要我们自己编写的。举个例子,比如我们需要输出一个2kHz的PWM方波,则我们的ARR设置为499,PSC设置为71,最后计算所得的周期时间为500us,转化为频率便是2kHz。
接下来我们设置输出比较模式,设置为PWM模式1、通道输出极性为低电平有效。对于LED0的PB5串口,我们可以看到对应的定时器通道为TIM3的通道2。
然后我们在检查