1.编写所需头文件
2.定义LED的引脚
3.定义呼吸灯参数
分别定义呼吸灯的PWM周期,呼吸步进值以及呼吸更新间隔(ms)。
4.定义全局变量
分别定义TIM3 PWM占空比,TIM4 PWM占空比(从中间开始,与TIM3错开),TIM3方向(1增加,0减少)以及TIM3方向(1增加,0减少)。
5.声明函数
6.编写GPIO配置函数
分别配置使能GPIO时钟,配置板载LED (PC13) - 推挽输出以及配置外接LED (PA6) - 复用推挽输出 (TIM3_CH1)。
7.编写TIM3配置函数
分别配置使能TIM3时钟以及配置定时器基础(包括自动重装载值,预分频器,时钟分频和向上计数模式)。
8.编写TIM4配置函数
分别配置使能TIM4时钟以及配置定时器基础(包括自动重装载值,预分频器,时钟分频和向上计数模式)。
9.初始化TIM3 PWM
分别配置PWM模式(包括PWM模式1,输出使能,输出极性高和初始占空比为0)和配置通道1。
10.初始化TIM3 PWM
分别配置PWM模式(包括PWM模式1,输出使能,输出极性高和初始占空比为50%)和配置通道1。
11.更新PWM占空比函数
首先更新TIM3占空比 (外接LED),然后更新TIM4占空比 (板载LED),最后设置新的占空比。
12.设计简单延时函数
13.编写main主函数
依次初始化系统时钟,配置GPIO,配置定时器,初始化PWM,启动定时器,启动PWM输出,更新PWM占空比以及延时。
硬件连接
板载LED: PC13(固定连接)
外接LED: 可以连接到PA6(TIM3_CH1)或PB6(TIM4_CH1)
程序说明
-
硬件配置
TIM3_CH1: PA6 → 驱动外接LED
TIM4_CH1: 通过软件控制PC13 → 驱动板载LED -
呼吸灯原理
PWM频率: 1kHz (1MHz / 1000 = 1kHz)
占空比在0-1000范围内变化。
两个LED呼吸相位错开,产生交替呼吸效果。