5、PWM呼吸灯实验
学习目标
1.学习PWM呼吸灯原理。
2.通过 TIM4 的 CH4 输出一个 PWM 信号,控制 LED 指示灯由暗变亮,再由亮变暗,类似于人的呼吸。
PWM原理
PWM 是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简 称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有 效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应 用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机控制、伺 服控制、调光、开关电源,甚至某些音频放大器,因此学习 PWM 具有十分重要的 现实意义。
其实我们也可以这样理解,PWM 是一种对模拟信号电平进行数字编码的方 法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直 流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断 (OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负 载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。
硬件搭建
本实验使用的定时器引脚是PB9,对应的定时器通道是TIM4_CH4,由于PB9引脚没有led的灯,为了观察呼吸灯效果,我们将PB9与PC13用杜邦线连接,直接使用板载上的led灯。
注意:1.成功下载程序之后再给引脚接线;2.杜邦线需要自己另购。 (PB9-------PC13)
![](/assets/img/stm32/STM32F103C8T60.96TFT/77.png)
程序分析
PWM 输出频率是不变的,改变的是 CCR 寄存器内的值,此值的改变将导致 PWM 输出信号占空比的改变。占空比其实就是一个周期 内高电平时间与周期的比值,而改变这个比值可以控制io引脚输出高低电平的时间, 所以可以通过 TIM4 的 CH4 输出 PWM 信号,实现 LED呼吸灯的控制。
LED初始化代码:
![](/assets/img/stm32/STM32F103C8T60.96TFT/78.png)
PWM初始化代码:
![](/assets/img/stm32/STM32F103C8T60.96TFT/79.png)
主函数main.c文件代码:
![](/assets/img/stm32/STM32F103C8T60.96TFT/80.png)
实验现象
程序下载完成之后,我们可以看到STM32主板上的LED灯慢慢亮灭,呈呼吸灯效果。