任务目标:掌握 CubeMX 软件配置定时器输出PWM信号的方法。

任务内容:利用PWM信号控制开发板上的指示灯LED。设置PWM 周期为20 ms,占空比从 0% 开始,步进为 10%。递增到 100% 后,又从0% 开始并重复整个过程。占空比修改的时间间隔为 100 ms。

任务实现:

1.设计思路

定义2个变量: 占空比Duty 和步进值 Step。占空比从0逐次步进到 100%,步进比例为10%,步进时间间隔为100 ms。PWM信号的周期为20ms,定时器14的定时时钟TIM2_CLK为84MHz,可以设置预分频系数PSC为84-1,自动重载值ARR为20000-1。

由于占空比从0开始,因此写入捕获/比较寄存器TIM14_CCR1的初值为0,然后在while(1)循环中调用捕获/比较寄存器设置宏函数__HAL_TIM_SetCompare()修改寄存器的内容,从0开始,逐渐增加,并重复该过程。

2.实现过程

使用板子是正点原子探索者。

第一步,设置系统时钟

第二步:配置引脚

PF9是LED灯和TIM14复用引脚,故设置TIM14作为PWM的定时器。

第三步,设置定时器TIM14

TIM14接在APB1总线上,APB1总线的时钟是84MHz。PWM的周期为20ms,故设置PSC=84-1,ARR=20000-1,占空比pulse=0;使能预装载功能。

第四步,生成代码

第五步,编写代码

/* USER CODE BEGIN 2 */uint16_t Duty=0;uint16_t step=2000;//定义占空比和步进值 step=20000*10%=2000HAL_TIM_PWM_Start(&htim14,TIM_CHANNEL_1);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){for(Duty=0;Duty<=20000;Duty=Duty+step){__HAL_TIM_SetCompare(&htim14,TIM_CHANNEL_1,Duty);HAL_Delay(100);}/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */

运行结果:

将程序编译链接,生成可执行代码,通过 ST-Link 仿真器下载到开发板上,可以观察到指示灯LED从熄灭状态开始,亮度逐渐增强,并重复该过程。

【STM32】HAL库PWM实现呼吸灯实验相关推荐

  1. STM32学习日记3---定时器TIM3重映射PWM波呼吸灯实验

    文章目录 1. 代码 关于PWM波的输出,我们需要用到定时器的4个通道(通用定时器和高级定时器有,基本定时器没有这4个通道)里面的PWM生成.然后查看数据手册,了解定时器的重映射引脚情况.所以配置时, ...

  2. STM32 HAL库 PWM+DMA 驱动WS2812B彩灯(STM32F030F4P6)

    谁不想拥有炫酷的小彩灯呢?WS2812B可以给你机会...... 博主使用STM32驱动WS2812B主要参考了这位佬的文章,因为需求问题,采用了Cortex-M0的stm32f030f4p6(16k ...

  3. HAL库PWM控制LED灯

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

  4. 【STM32】HAL库 STM32CubeMX教程七---PWM输出(呼吸灯)

    前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1.芯片: STM32F407ZET6/ STM32F103ZET6 ...

  5. 零基础学FPGA(五):时序逻辑电路设计之计数器(附有呼吸灯实验、简单组合逻辑设计介绍)

    目录 日常·唠嗑 前言 一.认清逻辑设计 二.时序逻辑电路设计 三.扩展:呼吸灯实验 日常·唠嗑 第一次建立<零基础学FPGA>专栏,是在2021年2月2日,已经过去了一年了,目前只更新了 ...

  6. 嵌入式系统开发13——STM32输出PWM实现呼吸灯

    本文主要介绍在STM32F103C8T6上,利用定时器输出PWM波形,进而驱动LED实现呼吸灯. 目录 一.任务要求 二.PWM简介 1.什么是PWM 2.相关概念 3.PWM的产生 4.PWM的通道 ...

  7. 【春节歌曲回味 | STM32小音乐盒 】PWM+定时器驱动无源蜂鸣器(STM32 HAL库)

    l  STM32通过PWM与定时器方式控制无源蜂鸣器鸣响 l  STM32小音乐盒,歌曲进度条图形显示与百分比显示,歌曲切换 l  编程使用STM32 HAL库 l  IIC OLED界面编程,动画实 ...

  8. 基于FPGA开发板使用Verilog设计PWM呼吸灯实验

    基于FPGA开发板使用Verilog设计PWM呼吸灯实验 1,实验原理 2,实验模块设计 2.1 RTL设计,呼吸灯模块设计 2.2,测试数据,下载到FPGA开发板板级的数据 2.3,两个模块综合的n ...

  9. SoC 外设-自定义 ip 实验 PWM实现呼吸灯

    SoC 外设-自定义 ip 实验 PWM实现呼吸灯 DS-5 中eclipse更新第二种代码为: /** main.c** Created on: 2021年12月9日* Author: awclou ...

最新文章

  1. Elgg网站迁移指南
  2. common-IO.jar相关
  3. Nature年度十大科学人物公布:瑞典气候女孩、北大邓宏魁、谷歌量子计算领导者上榜...
  4. 随手小记:快速适应未必是个好策略
  5. oracle写入导出文件时出错,帮忙!EXP-00015:错误!EXP-00002: 写入导出文件时出错
  6. 判断字符为空_算法题:字符串转换整数 (atoi)
  7. Python用subprocess的Popen来调用系统命令
  8. 通过Cookie存取用户游览记录的代码示例
  9. python手机版-QPython3手机版下载
  10. Android Verified Boot 2.0 安卓P AVB实现详解
  11. 微信小程序腾讯云实时语音转写
  12. Word公式自动编号
  13. python 输出 百分比
  14. 前端开发(html和css)
  15. 港股通接口获取香港交易所上市股票的基本信息
  16. 【字符串】字符串逆序
  17. K8S部署DevOps
  18. Java将图片压缩100KB以下,压缩图片,将几MB的图片压缩成100KB
  19. 量化交易---主要流程---003
  20. fdisk和parted对磁盘的分区总结

热门文章

  1. 惠普德国裁员1400人 大部分将来自EDS
  2. C++STL之优先级队列详解
  3. iPhoto的删除动画
  4. 手机运行lua_手机上的安卓开发
  5. 6.0 三星S7相机权限问题
  6. 了解OpenCart中的营销活动
  7. 严重: Web应用程序 [/XXX_war_exploded] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。
  8. 小米2013年度发布会直播
  9. php 模板 {{}},PHP字符串模板引擎
  10. ubuntu配置VNC远程连接服务器图形界面