一、实验要求:

使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果。

PWM波介绍:

1.PWM波

在一个周期波形中,高电平占整个周期的比例称之为占空比,而高电平宽度通常被称为脉冲宽度。当我们在控制占空比,从而控制电路导通或者关闭时间,从而控制导通的有效电压。

PWM的频率:

指1秒钟内信号从高电平到低电平再回到高电平的次数。

PWM的周期:

T = 1 / f,周期 = 1 / 频率

PWM的占空比:

指一个脉冲周期内,高电平的时间与整个周期时间的比例

脉宽时间:

高电平时间,脉宽时间占总周期时间的比例,就是占空比

调节PWM:

PWM就是通过脉冲宽度调制,通过调节占空比,就可以调节脉冲宽度(脉宽时间),而频率就是单位时间内脉冲信号的次数,频率越大,占空比越大。

分频-计数时钟

定时器时钟提供较高的频率,计数器不需要这么高的频率来计数,所以会进行降频,使用一个合适的低频时钟来计数。
定时器时钟经过PSC预分频器之后,即CK_CNT,用来驱动计数器计数。PSC是一个16位的预分频器,可以对时钟TIMxCLK进行1~65536之间的任何一个数进行分频。
即:CK_CNT = TIMxCLK / (PSC+1)

比如,使用STM32F4的通用定时器2(TIM2CLK为APB1的时钟的两倍即84MHz),PSC设置为83,则计数时钟为84MHz/(83+1)=1MHz,即1ms计一个数。

计数器

计数器是一个16位的计数器,只能往上计数,最大数值为65535。当计数达到自动重装载值时产生更新事件,并清零从头开始计数。

2.定时器输出PWM原理

定时器工作模式设置为向上计数PWM模式,且当CNT<CCRx时,输出1,当CNT>=CCRx时输出0,则:

当CNT值小于CCRx的时候,IO输出高电平(1),
当CNT值大于等于CCRx的时候,IO输出低电平(0),
当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。

二、开始实验

1.工程设置

在STM32CubeMX中新建文件夹并按如下进行设置

(1)打开System core,点击RCC设置为外部时钟源

(2)设置串口通信

(3)设置定时器

设置分频系数为71,计数周期为500,其它默认。

设置占空比初始值为10。


其余配置不变

(4)引脚设置:


工程设置结束生成工程文件并打开

2.代码编写

(1)添加一个变量用来储存占空比

uint16_t duty_num = 10;  //定义变量储存占空比

在main.c文件中找到
/* USER CODE BEGIN PV */

/*USER CODE END PV */
并将此变量添加在里面

(2)添加启动定时器TIM2和管道2以及定时器TIM4和管道4的代码,输出PWM

 HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_4);  //开启定时器4和4号通道HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);   //开启定时器2和2号通道

在main.c文件中找到
/* USER CODE BEGIN 2 /

/
USER CODE END 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(&htim4,TIM_CHANNEL_4,duty_num); __HAL_TIM_SetCompare(&htim2,TIM_CHANNEL_2,duty_num);

在main.c文件中找到
/*USER CODE BEGIN 3 */

/*USER CODE END 3 */
并将代码添加在里面

编译无误后进行烧录

3.实验结果演示

(1)PWM波形

(2)结果演示

参考博客:

https://blog.csdn.net/qq_66144143/article/details/127600830

嵌入式——使用定时器输出PWM波形,实现 LED呼吸灯的效果相关推荐

  1. STM32输出PWM波形及LED呼吸灯

    目录 一.PWM的介绍 1.概述 2.优点 3.主要产生方法 SPWM法 1.等面积法 2.硬件调制法 3.软件生成法 4.PWM电路图 5.PWM基本原理 二.cubemx项目的建立 1.选择芯片S ...

  2. STM32输出PWM波形并实现呼吸灯

    文章目录 一.环境配置 二.PWM简介 三.使用STM32CubeMX配置工程 四.使用Keil配置代码 五.运行效果 六.用Keil自带的逻辑仿真器观察占空比 七.总结 八.参考资料 一.环境配置 ...

  3. 输出一个PWM并实现 LED呼吸灯的效果

    前言 本篇博客使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸 ...

  4. 使用STM32输出PWM波形LED呼吸灯的效果

    文章目录 前言 一.PWM简介 1.1 关于PWM 1.2 使用步骤 二.使用STM32CUBEMX实现2个 LED呼吸灯的效果 2.1.配置环境 2.2 代码配置 2.3.输出PWM波形 2.4 呼 ...

  5. 嵌入式学习——使用定时器输出PWM波形,实现 LED呼吸灯的效果

    嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 目录 嵌入式学习--使用定时器输出PWM波形,实现 LED呼吸灯的效果 1. 任务要求 2 PWM波介绍, 2.1 什么是PWM(Pu ...

  6. 嵌入式学习--使用定时器输出PWM波形,实现LED呼吸灯的效果

    目录 1.任务要求 2.PWM介绍 关于PWM的定义 分频-计数时钟 计数器 定时器输出PWM的原理 定时器的初始化 3.配置STM32CubeMX 4.keil5的代码 5.运行结果 6.心得与体会 ...

  7. STM32F103C8T6核心开发板下,通过TIM3和TIM4输出PWM波形实现2个 LED呼吸灯的效果

    使用TIM3和TIM4,分别输出一个PWM波形,驱动一个外接的LED灯以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效果 文章目录 使用TIM3和TIM4 ...

  8. 使用TIM3和TIM4,驱动外接LED和STM32上已焊接的LED,实现2个 LED呼吸灯的效果

    文章目录 一.PWM相关介绍 1.PWM的含义 2.PWM的基本原理 3.PWM的优点及应用范围 4.STM32上的PWM 5.PWM相关寄存器 6.PWM脉冲宽度调制 7.PWM的频率 二.实现呼吸 ...

  9. stm32F051系列 单片机引脚定时器输出pwm波形控制风扇转速

    概述:stm32的每个引脚都有其自带的特殊功能,有定时器输出功能的引脚可以输出pwm.如果没有的也可以io口模拟输出,如果非要较真的话,理论上可以算是每个引脚都能输出PWM,但一般我们都使用带定时器输 ...

最新文章

  1. 【组队学习】【29期】7. 集成学习(上)
  2. Linux系统运维工程师PDF文档精选
  3. 一文看懂深度学习与计算机视觉
  4. es6中的块级作用域
  5. 甲醛、苯、甲苯、二甲苯对人体健康的危害
  6. html和url两种录制方式
  7. 华为交换机开机后接口等一直闪_交换机的工作原理
  8. scrapy setting
  9. 【BZOJ】1061: [Noi2008]志愿者招募
  10. 远程计算机用户端口,电脑怎么开远程端口
  11. Docker 基础 ( 二十 ) 部署Redis集群,问题记录
  12. 为什么下一个十年的主战场在Serverless
  13. 疾控LIMS实验室信息管理系统功能需求
  14. linux 下查看文件字符编码和转换编码 360doc,Linux 下查看文件字符编码和转换编码...
  15. ResNet网络结构详解、完整代码实现
  16. 短信接入程序,短信接入平台,彩信接入程序,移动短信接入软件,移动彩信接入平台模块
  17. operator重载运算符
  18. 攻防世界之Miscellaneous-300
  19. 北京社保开户需要的手续及流程
  20. C语言入门技巧·使用注释快捷键完成单行注释和多行注释的技巧

热门文章

  1. Palo Alto GlobalProtect上的PreAuth RCE
  2. 视频文件如何转换格式?爱奇艺qsv怎么转换mp4
  3. MySQL查缺补漏 从无到有
  4. 新榜研究院:2018年演讲平台行业研究报告
  5. CRM系统维护老客户秘诀
  6. 后交叉韧带胫骨止点撕脱骨折诊治进展
  7. 一个Demo带你手把手进行Docker开发(内涵源码和视频讲解)
  8. 我的msn网络收藏夹,老记不住,就写到这里了
  9. 关于产品的一些思考——小米之MI2设计
  10. 《我的野蛮女友》普通版和导演剪辑版区别