STM32输出PWM波形及LED呼吸灯

目录

一、PWM的介绍

1.概述

2.优点

3.主要产生方法

SPWM法

1.等面积法

2.硬件调制法

3.软件生成法

4.PWM电路图

 5.PWM基本原理

二、cubemx项目的建立

1.选择芯片STM32F103C8T6

2.配置RCC

3.配置SYS

4.配置定时器(TIM3,TIM4)

5.配置led相应引脚

6.生成keil5项目

三、keil5项目操作

1.修改main.c

2.开启TIM3的通道1,TIM4的通道2, 输出PWM

 3.设置Debug相关参数

4.加入需要观察的引脚信号

5.生成PWM波形如图

 6.编译并生成hex文件

四、电路连接

 五、烧录

六、调试结果

七、心得总结

八、参考博客


一、PWM的介绍

1.概述

PWM是一种对模拟信号电平进行
数字编码的方法。通过高
分辨率计数器的使用,方波的占空比被调制用来对一个具体
模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。

2.优点

PWM的一个优点是从处理器到被控系统
信号都是数字形式的,再进行数模转换。可将噪声影响降到最低(可以跟电脑一样)。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。

对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。

3.主要产生方法

SPWM法

SPWM(Sinusoidal PWM)法是一种比较成熟的,使用较广泛的PWM法。

前面提到的采样控制理论中的一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。SPWM法就是以该结论为理论基础,用脉冲宽度按正弦规律变化而和正弦波等效的PWM波形即SPWM波形控制逆变电路中开关器件的通断,使其输出的脉冲电压的面积与所希望输出的正弦波在相应区间内的面积相等,通过改变调制波的频率和幅值则可调节逆变电路输出电压的频率和幅值。该方法的实现有以下几种方案。

1.等面积法

该方案实际上就是SPWM法原理的直接阐释,用同样数量的等幅而不等宽的矩形脉冲序列代替正弦波,然后计算各脉冲的宽度和间隔,并把这些数据存于微机中,通过查表的方式生成PWM信号控制开关器件的通断,以达到预期的目的。由于此方法是以SPWM控制的基本原理为出发点,可以准确地计算出各开关器件的通断时刻,其所得的的波形很接近正弦波,但其存在计算繁琐,数据占用内存大,不能实时控制的缺点。

2.硬件调制法

硬件调制法是为解决等面积法计算繁琐的缺点而提出的,其原理就是把所希望的波形作为调制信号,把接受调制的信号作为载波,通过对载波的调制得到所期望的PWM波形。通常采用等腰三角波作为载波,当调制信号波为正弦波时,所得到的就是SPWM波形.其实现方法简单,可以用模拟电路构成三角波载波和正弦调制波发生电路,用比较器来确定它们的交点,在交点时刻对开关器件的通断进行控制,就可以生成SPWM波。但是,这种模拟电路结构复杂,难以实现精确的控制。

3.软件生成法

由于微机技术的发展使得用软件生成SPWM波形变得比较容易,因此,软件生成法也就应运而生.软件生成法其实就是用软件来实现调制的方法,其有两种基本算法,即自然采样法和规则采样法。

4.PWM电路图

 5.PWM基本原理

        (1) 什么是PWM:PWM简称脉冲宽度调制,即在一个周期内存在不同极性的电平状态。

        (2)PWM频率:是指一秒钟内从高电平时间在到低电平时间,再从低电平跳到高电平的瞬间次数,也就是一秒钟内有多少个PWM的周期。f = T / 1(HZ)。

        (3)PWM周期:是指一秒钟内从高电平时间在到低电平时间,T = f / 1(s)。

        (4) PWM占空比:是指一个周期内高电平时间和总时间的比值。

二、cubemx项目的建立

1.选择芯片STM32F103C8T6

2.配置RCC

3.配置SYS

 

4.配置定时器(TIM3,TIM4)

 

5.配置led相应引脚

6.生成keil5项目

 

 再点击GENERATE CODE,生成keil5项目。

三、keil5项目操作

1.修改main.c

添加一个变量储存占空比

while循环内如下图所示修改:

 

2.开启TIM3的通道1,TIM4的通道2, 输出PWM

 

 3.设置Debug相关参数

4.加入需要观察的引脚信号

 

5.生成PWM波形如图

 6.编译并生成hex文件

 

四、电路连接

3v3-3v3

GND-GND

A9-RXD;A10-TXD

A6-LED正极(LED呼吸灯);C13-LED正极(PC13小灯呼吸灯)

两者无法同时显示

 五、烧录

 

六、调试结果

七、心得总结

通过此次实验,对于定时器的使用以及PWM波形的生成和分析的有了更深的理解,另外,对于呼吸灯的函数的运用更加熟练,第一次知道STM32开发板上的小led(PC13端口输出)可以用定时器来设置定时中断来方便使用,让中断重复发生,让程序可以更好的受到控制,达到我们想要的呼吸灯结果。让我对整个嵌入式的理解加深了不少,也掌握了更多的嵌入式应用方式。

八、参考博客

(64条消息) 使用STM32输出PWM波形_不#曾&轻听的博客-CSDN博客_stm32输出pwm波形

STM32CUBEMX_基于PWM的呼吸灯 | MCU起航

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值