STM32F103输出PWM波形及形成呼吸灯

一、PWM介绍

1、概念

PWM 全称是 Pulse WidthModulation,也就是脉冲宽度调制。通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式。

2、基本原理

PWM实现的原理是通过锯齿波/三角波(载波)所需要合成的波形(调制波)进行比较,然后确定PWM所需要输出的极性,通常是ON或者是OFF,因为一般都是作用到开关元器件上

二、STM32配置PWM

1、硬件说明

STM32F103C8T6(普通开发板)

2、STM32上PWM

(1)PWM产生
STM32的定时器除了TIM6和7,其他的定时器都可以用来产生PWM输出。其中高级定时器TIM1和TIM8可以同时产生多达 7 路的 PWM 输出。而通用定时器也能同时产生多达 4路的 PWM 输出,这样,STM32 最多可以同时产生 30 路 PWM 输出。
脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器确定频率、由TIMx_CCRx寄存器确定占空比的信号。通用定时器产生PWM 的定时器框图如下:(其他定时器框图类似)
在这里插入图片描述
(2)相关寄存器

  • 捕获/比较模式寄存器(TIMx_CCMR1/2)
  • 捕获/比较使能寄存器(TIMx_CCER)
  • 捕获/比较寄存器(TIMx_CCR1~4)

设置TIMx_CCMRx寄存器OCxPE位以使能相应的预装载寄存器,最后还要设置TIMx_CR1寄存器的ARPE位,(在向上计数或中心对称模式中)使能自动重装载的预装载寄存器。在TIMx_CCMRx寄存器中的OCxM位写入110(PWM模式1)或111(PWM模式2),能够独立地设置每个OCx输出通道产生一路PWM。

三、STM32CubeMX创建项目

1、基本配置

基本配置RCC,SYS
基本配置时钟

RCC、SYS、时钟已多次配置,此处不再赘述

2、TIM3配置

在这里插入图片描述

3、TIM4配置

TIM4配置于TIM3相同
在这里插入图片描述

TIM3_CH1由PA6输出,TIM4_CH2由PB6输出

4、生成项目

一、配置好PROJECT
二、配置好CODE
三、与之前配置相同、不再赘述

四、KEIL代码编写

1、定义变量

定义在main.c中,为全局变量

uint16_t pwm=0;   //占空比

2、开启PWM

代码放置在主函数

HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1); 
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_1); 

3、调用代码

在while中编写代码

while (pwm< 500)
{
	pwm++;
	__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, pwm);  
    __HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_1, pwm);  			
	HAL_Delay(1);
}
while (pwm)
{
	pwm--;
	__HAL_TIM_SetCompare(&htim3, TIM_CHANNEL_1, pwm);
    __HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_1, pwm);  		
	HAL_Delay(1);
}
HAL_Delay(200);

4、编译烧录代码

在这里插入图片描述

五、运行效果

1、KEIL上PWM输出仿真

在这里插入图片描述

2、开发板运行效果

在这里插入图片描述

六、实验总结

(1)了解PWM基本概念及原理,以及STM32上相关的PWM寄存器
(2)通过对PWM机制的了解,明白了呼吸灯的实现过程

七、实验参考

https://blog.csdn.net/jynyyhd/article/details/127655245?spm=1001.2014.3001.5502
https://blog.csdn.net/qq_45237293/article/details/111997424

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值