STM32F7学习笔记(六)-PWM

一、打开cubemx

LED0和LED1连接在PB0和PB1上,刚好是TIM3的PWM通道3和通道4

二、配置PWM参数

开启TIM3的通道3和通道4
在这里插入图片描述
配置PWM的频率为108000000/(108*500)=20kHZ
在这里插入图片描述
配置PWM通道3和通道4
在这里插入图片描述
在程序中改变pulse的值,即可改变占空比pulse的取值范围在0-count period之间

三、生成代码

在main函数中增加代码,开启PWM输出
在这里插入图片描述
在tim.c中增加pwm控制函数

void SetPwm(uint16_t pwm1,uint16_t pwm2)
{
    TIM3->CCR3=pwm1;
    TIM3->CCR4=pwm2;
}

也可以使用hal库进行修改,但这样比较复杂

void SetPwm(uint16_t pwm1,uint16_t pwm2)
{
		TIM_OC_InitTypeDef sConfigOC;
	    sConfigOC.Pulse = pwm1;
	    HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_3);
	    HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);  
		 sConfigOC.Pulse = pwm2;
	    HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_4);
	    HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);  
}

在主函数添加呼吸灯代码,添加完成如下
在这里插入图片描述

四、下载代码观看现象

将代码下载到开发板中可以看到LED0和LED1呈现出呼吸灯的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值