【STM32】HAL库PWM实现呼吸灯实验
任务目标:掌握 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实现呼吸灯实验相关推荐
- STM32学习日记3---定时器TIM3重映射PWM波呼吸灯实验
文章目录 1. 代码 关于PWM波的输出,我们需要用到定时器的4个通道(通用定时器和高级定时器有,基本定时器没有这4个通道)里面的PWM生成.然后查看数据手册,了解定时器的重映射引脚情况.所以配置时, ...
- STM32 HAL库 PWM+DMA 驱动WS2812B彩灯(STM32F030F4P6)
谁不想拥有炫酷的小彩灯呢?WS2812B可以给你机会...... 博主使用STM32驱动WS2812B主要参考了这位佬的文章,因为需求问题,采用了Cortex-M0的stm32f030f4p6(16k ...
- HAL库PWM控制LED灯
任务: 使用TIM3和TIM4,分别输出一个PWM波形,PWM的占空比随时间变化,去驱动你外接的一个LED以及最小开发板上已焊接的LED(固定接在 PC13 GPIO端口),实现2个 LED呼吸灯的效 ...
- 【STM32】HAL库 STM32CubeMX教程七---PWM输出(呼吸灯)
前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1.芯片: STM32F407ZET6/ STM32F103ZET6 ...
- 零基础学FPGA(五):时序逻辑电路设计之计数器(附有呼吸灯实验、简单组合逻辑设计介绍)
目录 日常·唠嗑 前言 一.认清逻辑设计 二.时序逻辑电路设计 三.扩展:呼吸灯实验 日常·唠嗑 第一次建立<零基础学FPGA>专栏,是在2021年2月2日,已经过去了一年了,目前只更新了 ...
- 嵌入式系统开发13——STM32输出PWM实现呼吸灯
本文主要介绍在STM32F103C8T6上,利用定时器输出PWM波形,进而驱动LED实现呼吸灯. 目录 一.任务要求 二.PWM简介 1.什么是PWM 2.相关概念 3.PWM的产生 4.PWM的通道 ...
- 【春节歌曲回味 | STM32小音乐盒 】PWM+定时器驱动无源蜂鸣器(STM32 HAL库)
l STM32通过PWM与定时器方式控制无源蜂鸣器鸣响 l STM32小音乐盒,歌曲进度条图形显示与百分比显示,歌曲切换 l 编程使用STM32 HAL库 l IIC OLED界面编程,动画实 ...
- 基于FPGA开发板使用Verilog设计PWM呼吸灯实验
基于FPGA开发板使用Verilog设计PWM呼吸灯实验 1,实验原理 2,实验模块设计 2.1 RTL设计,呼吸灯模块设计 2.2,测试数据,下载到FPGA开发板板级的数据 2.3,两个模块综合的n ...
- SoC 外设-自定义 ip 实验 PWM实现呼吸灯
SoC 外设-自定义 ip 实验 PWM实现呼吸灯 DS-5 中eclipse更新第二种代码为: /** main.c** Created on: 2021年12月9日* Author: awclou ...
最新文章
- Elgg网站迁移指南
- common-IO.jar相关
- Nature年度十大科学人物公布:瑞典气候女孩、北大邓宏魁、谷歌量子计算领导者上榜...
- 随手小记:快速适应未必是个好策略
- oracle写入导出文件时出错,帮忙!EXP-00015:错误!EXP-00002: 写入导出文件时出错
- 判断字符为空_算法题:字符串转换整数 (atoi)
- Python用subprocess的Popen来调用系统命令
- 通过Cookie存取用户游览记录的代码示例
- python手机版-QPython3手机版下载
- Android Verified Boot 2.0 安卓P AVB实现详解
- 微信小程序腾讯云实时语音转写
- Word公式自动编号
- python 输出 百分比
- 前端开发(html和css)
- 港股通接口获取香港交易所上市股票的基本信息
- 【字符串】字符串逆序
- K8S部署DevOps
- Java将图片压缩100KB以下,压缩图片,将几MB的图片压缩成100KB
- 量化交易---主要流程---003
- fdisk和parted对磁盘的分区总结
热门文章
- 惠普德国裁员1400人 大部分将来自EDS
- C++STL之优先级队列详解
- iPhoto的删除动画
- 手机运行lua_手机上的安卓开发
- 6.0 三星S7相机权限问题
- 了解OpenCart中的营销活动
- 严重: Web应用程序 [/XXX_war_exploded] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。
- 小米2013年度发布会直播
- php 模板 {{}},PHP字符串模板引擎
- ubuntu配置VNC远程连接服务器图形界面