1.实验简介
1.1PWM
PWM(Pulse Width Modulation)即脉冲宽度调制技术,是一种通过调节脉冲信号的占空比来实现模拟信号的调节的技术。在PWM控制中,周期性的方波称为PWM波,其占空比是指高电平时间与周期的比值。PWM波信号可以通过控制电路的输出电平来实现对外设的控制,如对LED的亮度、电机的转速等。通常使用定时器模块来生成PWM波,定时器在每个周期内发出固定的时间间隔中断,根据设定的占空比,每个周期内的高电平时间和低电平时间不同,从而实现对PWM波的控制。
1.2stm32定时器
STM32的定时器是一个重要的外设,它用于生成定时和定时中断,从而控制和管理微控制器的时间。STM32总共有8个定时器,分别是2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5)和2个基本定时器(TIM5、TIM6)。不同种类的定时器具有不同的特性和功能。
1.3硬件/软件准备
硬件:STM32F103C8T6芯片,面包板,跳线若干,杜邦线若干,LED灯一只
软件:STMcubeMX,Keil MDK
1.4 实验原理
PWM点呼吸灯的原理主要是通过控制输出方波的占空比,即高电平持续时间和低电平持续时间,从而达到控制LED亮度,进而实现呼吸灯效果。当输出方波的占空比大时,LED亮度就高,占空比小时,LED亮度就低。此外,PWM波形的周期也会影响到LED灯的亮暗程度,周期越长,亮度变化越平缓。在实际应用中,可以通过调整PWM的周期和占空比,以达到所需的呼吸灯效果。
2.项目配置
2.1接线方式
我们这次实验采用TIM2通道,通过查看手册,我们可以知道,TIM2通道对应的输出口为PA0,所以我们将LED灯正极接PA0
2.2 STMCubeMX项目配置
配置SYS
配置RCC
配置时钟
配置TIM2通道
项目配置完成
3.代码编写
while (1)
{
uint8_t i=0;
for(i;i<200;i++){
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,i);
HAL_Delay(10);
}
for(i;i>0;i--){
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,i);
HAL_Delay(10);
}
}
在main函数的while循环中写入以下代码
进行烧录
4.结果展示
由于文档大小等原因,视频链接如下
https://www.bilibili.com/video/BV1Nw411u7wa/?vd_source=fb27518a4625f1765fe0e049ca10005f