文章目录
要求
使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。
实验步骤
一、创建项目
1、创建Project
1、创建,并设置RCC
将HSE设置为Crystal/Ceramic Resonator
2、设置SYS
将SYS设置为Serial Wire
3、设置TIM2
4、创建
二、烧录代码
1、定义一个变量,用来存储占空比
代码为:
uint16_t duty_num = 10;
如图
2、开始TIM2的通道2,输出PWM
代码为:
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
如图:
3、每隔50毫秒,占空比加10,如果超过500(也就是PWM周期),自动变成0
代码如下:
HAL_Delay(50);
duty_num = duty_num + 10;
if(duty_num > 500)
{
duty_num = 0;
}
__HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_2,duty_num);
}
如图:
4、编译,并且烧录
点击编译后,会生成hex文件。
打开mcuisp,放入生成的hex文件,如图
将STM32芯片BOOT0置0,按一下复位按钮,点击开始编程。
完成后,如图
5、查看成果
将STM32芯片BOOT0置1,点击复位按钮
结果如下图
三、查看PWM波形
1、修改设置
将Debug设置如图修改
2、点击编译后,再点击调试
3、然后打开逻辑分析仪
增加引脚PA1,设置Type为Bit
4、点击运行
5、修改Grid值后
结果如下:
四、实验总结
本次实验通过对TIM2的调试,输出PWM波,实现呼吸灯的效果。