STM32 — PWM介绍和使用PWM实现呼吸灯效果

news2024/11/28 14:37:32

目录

PWM介绍

PWM输出模式:

PWM占空比:

PWM周期与频率公式:

使用PWM点亮LED灯实现呼吸灯效果

1. 在 SYS 选项里,将 Debug 设为 Serial Wire​编辑

2. 将 RCC 里的 HSE 设置为 Crystal/Ceramic Resonator

3. 时钟配置

4.配置定时器设置PWM,有效电平设置为Low(低电平),因为LED灯低电平亮

5.示例代码:


PWM介绍

STM32F103C8T6 PWM资源:

高级定时器(TIM1):7路

通用定时器(TIM2~TIM4):各4路

PWM输出模式:

  • PWM模式1:在向上计数时,一旦 CNT < CCRx 时输出为有效电平,否则为无效电平; 在向 下计数时,一旦 CNT > CCRx 时输出为无效电平,否则为有效电平。
  • PWM模式2:在向上计数时,一旦 CNT < CCRx 时输出为无效电平,否则为有效电平; 在向 下计数时,一旦 CNT > CCRx 时输出为有效电平,否则为无效电平。

PWM占空比:

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

由TIMx_CCRx寄存器决定,通常设置CNT < CCRx为有效电平中的高电平,则CRR/ARR决定占空比,例如CRR为100,ARR为500,则占空比为20%

PWM周期与频率公式:

假如:PSC = 71Hz,ARR = 499Hz,Tclk = 72M Hz,

则T为 72 x 500 / 72000000 = 0.5ms

频率为 1 / T = 2kHz

使用PWM点亮LED灯实现呼吸灯效果

LED灯为什么可以越来越亮,越来越暗?

这是由不同的占空比决定的。

如何计算周期/频率?

假如频率为 2kHz ,则:PSC=71,ARR=499,上面已经讲过

LED灯连接到哪个定时器的哪一路?

通过看产品手册:

打开CubeMX配置STM32F103C8T6

1. 在 SYS 选项里,将 Debug 设为 Serial Wire

2. 将 RCC 里的 HSE 设置为 Crystal/Ceramic Resonator

3. 时钟配置

4.配置定时器设置PWM,有效电平设置为Low(低电平),因为LED灯低电平亮

5.示例代码:

    // 使能 Timer4 第3通道 PWM 输出
    HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_3);

	uint16_t pwmVal = 0; // 调整PWM占空比
	uint8_t swap = 1; // 设置改变方向。1:占空比越来越大;0:占空比越来越小

  while (1)
  {
    HAL_Delay(1);
		
    if(swap)
        pwmVal++;
    else
        pwmVal--;
		
    if(pwmVal > 500)
        swap = 0;
    else if(pwmVal == 0)
        swap = 1;
		
		//修改比较值,修改占空比
		__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_3, pwmVal);
  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145991.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

信息系统项目管理师教程 第四版【第3章-信息系统治理-思维导图】

信息系统项目管理师教程 第四版【第3章-信息系统治理-思维导图】

信息系统项目管理师教程 第四版【第2章-信息技术发展-思维导图】

信息系统项目管理师教程 第四版【第2章-信息技术发展-思维导图】

视频格式高效转换:MP4视频批量转MKV格式的方法

随着数字媒体技术的不断发展&#xff0c;视频格式转换已经成为了我们日常工作中不可或缺的一部分。不同的视频格式适用于不同的场景和设备&#xff0c;因此将视频从一种格式转换为另一种格式往往是我们必须完成的任务。在本文中&#xff0c;我们将重点介绍如何运用云炫AI智剪高…

读图数据库实战笔记02_图数据建模

1. 概念 1.1. 实体 1.1.1. 通常用名词来表示 1.1.2. 描述一个领域中的事物或者事物类型 1.1.2.1. 汽车 1.1.2.2. 用户 1.1.2.3. 地理位置 1.1.3. 在逻辑模型和技术实现过程中&#xff0c;实体通常会变成“顶点” 1.2. 关系 1.2.1. 用动词&#xff08;或动词短语&#…

SpringCloud 微服务全栈体系(六)

第八章 Gateway 服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;该项目是基于 Spring 5.0&#xff0c;Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关&#xff0c;它旨在为微服务架构提供一种简单有效的统一的 API 路由管…

RK3568平台 IIC子系统框架

一.简介 IIC只有两条线&#xff0c;一条串行数据线SDA&#xff1b;一条是时钟线SCL。使用SCL&#xff0c;SDA这两条线就实现了设备之间的数据交互。 I2C通信可以一对一&#xff08;1个主设备对1个从设备&#xff09;&#xff0c;也可以一对多&#xff08;1个主设备对多个从设…

React Router初学者入门指南(2023版)

React Router&#xff0c;简单来说&#xff0c;是一个帮助处理React应用程序中导航和路由的库。它是用于管理React中路由的最流行的路由工具。如果你对路由的概念不熟悉&#xff0c;可以将其视为在网站的不同部分之间导航的过程。例如&#xff0c;当你进入网站的“联系我们”部…

UE5实现相机水平矫正

UE5实现相机水平矫正 思路&#xff0c;用HIT获得基于相机视角的 离散采样点&#xff0c;然后根据距离相机距离进行权重分析。 距离越近&#xff0c;采样约中心&#xff0c;即越接近人眼注意点&#xff0c;最后算出加权平均高度&#xff0c;赋予给相机&#xff0c;相机将水平旋…

C++ -- 深入理解多态

前言&#xff1a;多态的概念&#xff0c;通俗地来讲就是多种形态。当我们要完成某个行为的时候&#xff0c;不同的对象去完成时会产生不同的状态&#xff0c;这就叫做多态。具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会 产生出不同的状态。多态在C的类和对象中…

python裁剪图片

我原本想找到一个小一点的彩色人脸数据集&#xff0c;但是都没有找到合适的 但是我找到了一个人脸数据集的封面 于是我把这两个图片裁开&#xff0c;得到了6464张彩色人脸照片 from PIL import Image# 打开大图 big_image Image.open(female.jpg) # 获取大图的宽度和高度 wid…

windows 系统不设置密码也能远程登陆

前言 如果windows系统不设置密码&#xff0c;默认情况下是不能远程登陆的 解决办法 按下winr&#xff0c;输入gpedit.msc 再回车 点击windows设置 ----安全设置 ------本地策略-----安全选项 设置为禁用 远程就可以不输入密码了

PMI-ACP(103:1-16)

英文名&#xff1a;ACP 外文名&#xff1a;Agile Certified Practitioner 中文名&#xff1a;敏捷管理专业人士资格认证 是由 美国项目管理协会 PMI Project Management Institute 发起的&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证。 一年开展4次考…

摆玩具[算法赛](差分)

本题链接&#xff1a;用户登录 题目&#xff1a; 样例&#xff1a; 输入 5 2 2 5 7 10 13 输出 8 思路&#xff1a; 由题意&#xff0c;这是一个递增的数组&#xff0c;其次要求最小的极差&#xff0c;对 数组 进行分成 k 个分段数组。 由于是一个递增的数组&#xf…

postgresql14管理(六)-备份与恢复

定义 备份&#xff08;backup&#xff09;&#xff1a;通过物理复制或逻辑导出的方式&#xff0c;将数据库的文件或结构和数据拷贝到其他位置进行存储&#xff1b; 还原&#xff08;restore&#xff09;&#xff1a;是一种不完全的恢复。使用备份文件将数据库恢复到备份时的状…

4.多层感知机

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 多层感知机一、感知机1、感知机2、训练感知机3、图形解释4、收敛定理5、XOR问题6、总结 二、多层感知机1、XOR2、单隐藏层3、单隐藏层-单分类4、为什么需要非线性激活函数5、Sigmoid函数6、Tanh函数7、ReLU函数8、多类分…

C语言十进制转其它进制

短除法介绍 短除法&#xff1a; 主要功能为将十进制数据转为其它进制的数据&#xff0c;假设我们要转换为 X 进制&#xff0c;那么具体的流程如下&#xff1a; 十进制数字不断除以 X&#xff0c;直到商为 0 记录每次计算得到的余数 将余数倒序输出&#xff0c;即为对应的 X 进…

C# 递归算法使用简介_常用整理

一、递归简介 递归算法是一种直接或者间接调用自身函数或者方法的算法。 递归算法的实质是把问题分解成规模缩小的同类问题的子问题&#xff0c;然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效&#xff0c;它可以使算法简洁和易于理解。 递归本质是循环&a…

正五边形的周长 题解

描述 已知一个正五边形的一条边的长度是a&#xff0c;计算输出该正五边形的周长。 输入 一行一个正整数a&#xff0c;表示该正五边形的边长。a的数值不会超过int的范围。 输出 一行一个正整数&#xff0c;表示这个该正五边形的周长&#xff0c;也就是5条边加起来的和。 输入样…

计网小题题库整理第一轮(面向期末基础)(1)

整理了一部分选择和填空&#xff0c;比较基础。计网的核心在于&#xff1a;背就完事~ 一.填空题 在采用电信号表达数据的系统中&#xff0c;数据有数字数据 和 模拟数据 两种。域名系统 DNS 是一个 分布式数据库 系统。TCP/IP 的网络层最重要的协议是 IP 互连网协议&#xff0…

STM32GPIO有几种模式,

一&#xff1a;GPIO有八种模式 输入&#xff1a; GPIO_Mode_AIN 模拟输入 GPIO_Mode_IN_FLOATING 浮空输入 GPIO_Mode_IPD 下拉输入 GPIO_Mode_IPU 上拉输入 输出 GPIO_Mode_Out_OD 开漏输出 GPIO_Mode_Out_PP 推挽输出 GPIO_Mode_AF_OD 复用开漏输出 GPIO_Mode_AF_PP 复用推挽…