STM32—PWM

目录

定义

参数 

周期

频率

占空比

工作原理

输入捕获     

输出比较 

 向上计数模式

 输出过程

应用

实验:通过PWM信号调节LED灯亮度

实验:呼吸灯

定义

PWM(Pulse Width Modulation)全称为脉冲宽度调制,它通过改变信号的高电平和低电平的持续时间比例来控制输出信号的平均功率或电压。

参数 

周期

高低电平变化所需要的时间,单位是ms

T=1/f

 其中,T是周期,f是频率。

频率

在1s内,信号从高电平到低电平再回到高电平的次数,也就是说一秒PWM有多少个周期,单位是Hz。

例如:

如果频率为50Hz,也就是一个周期20ms,那么一秒钟就有50次PWM周期。

        1000ms / 50 =20ms

占空比

在一个脉冲周期内,高电平的时间占整个周期时间的比例,单位是%(0%~100%)

工作原理

中文参考手册241页

TIMx_ARR          自动重装载寄存器

TIMx_CCRx        捕获/比较寄存器   

TIMx_CNT          计数器寄存器

输入捕获     

输入捕获可以用来捕获外部事件,比如引脚的电平变化(上升沿、下降沿),并记录下变化的时间,通常可以用来测量外部信号的频率或者电平的持续时间。

输出比较 

此项功能是用来控制一个输出波形,当计数器与捕获/比较寄存器的内容相同时,输出比较功能做出相应的动作,比如电平翻转,通常用于生产PWM波形。

 向上计数模式

 输出过程

当0-t1这个阶段,计数寄存器的CNT的值是小于CCR,输出高电平。

当t1-t2这个阶段,计数寄存器的CNT的值是大于CCR且小于ARR的值,输出低电平。

当CNT的值达到ARR的值的时候,产生溢出事件,自动清零(重装寄存器),然后再次从零开始向上计数。

应用

呼吸灯,LED照明调光,舵机转向控制,电机。

实验:通过PWM信号调节LED灯亮度

频率:

        64MHz        64分频         -->1MHz        也就是1 000 000s

        即记1000为一个周期

HAL_StatusTypeDef HAL_TIM_PWM_Start  (TIM_HandleTypeDef * htim, uint32_t Channel) 
功能:启动PWM信号生成
参数:	
    htim:TIM句柄
	Channel:  TIM要启用的通道,该参数可以是以下值之一
				XXXXXXXXX
返回值:状态

实验:呼吸灯

for(int num=1000;num>0;num-=2)
		{
			TIM3->CCR3 = num;
			HAL_Delay(1);
		}
		for(int num=0;num<1000;num+=2)
		{
			TIM3->CCR3 = num;
			HAL_Delay(1);
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值