江协科技STM32:TIM输出比较

输出比较模块的主要功能:输出一定频率和占空比的PWM波形

CC是捕获比较的意思,R是Register,寄存器的意思,CCR捕获比较寄存器它是输入捕获和输出比较共用的

当使用输入捕获,它就是捕获寄存器

当使用输出比较,它就是比较寄存器,在这里,会比较CNT和CCR的值

CNT计数自增,CCR是我们给定的一个值

当CNT大于CCR,小于CCR或等于CCR时,图上就会,然后就可以输出一个电平不断跳变的PWM波形了

这就是输出比较的基本功能

主要学习通用定时器的输出比较功能

输出比较就是用来输出PWM波形,那什么是PWM波形呢

PWM是数字信号,也是由高低电平组成的

使用PWM波形,是用来等效地实现一个模拟信号到输出,也就是控制灯的亮度,数字输出端口控制LED,理论上说,应该只有完全亮和完全灭灭两种状态,怎么实现控制亮度大小呢,那就需要PWM波形实现,我们让LED不断点亮,熄灭,点亮,熄灭,当点亮,熄灭到频率足够大时,LED就不会闪烁,而是呈现出一个中等亮度

当我们调控点亮和熄灭的时间比例时,就能让LED呈现出不同的亮度级别

对于电机调速也是一样,我们以一个很快的频率,给电机通电,断电,通电,断电,电机的速度就能维持在一个中等的速度

这就是PWM的基本思想

当然PWM到应用场景必须是一个惯性系统,就是说LED在熄灭的时候,由于余晖和人眼视觉暂留的现象,LED不会立马被熄灭,而是有一定的惯性,过一小段时间才会熄灭,电机也是,,当电机断电时,电机的转动不会立马停止,而是有一定的惯性,过一会才停,这样具有惯性的系统,才能使用PWM

在使用PWM时有几个重要的参数:

第一个频率,TS代表一个高低电平变换周期的时间,PWM的频率越快,那它等效模拟的信号就越平稳,性能开销也会越大,一般来说PWM的频率都在几K到几十KHz

第二个占空比,TON是高电平到时间,TS是一个周期的时间,TON/TS就是高电平时间相对整个周期时间的比例,一般用百分比来表示

比如占空比为50%,那就是高低电平时间相等的方波

占空比为20%,那就是高电平占20%,低电平占80%

占空比100%,那就是高电平不带变的

占空比0%,那就直接是低电平

这就是占空比

占空比决定了PWM等效出来的模拟电压的大小。占空比越大,那等效的模拟电压就越趋近于高电平,占空比越小,那等效的模拟电压就越趋近于低电平,这个等效关系一般来说是线性的,比如高电平5V,低电平0v,那50%占空比就等效中间电压就是2.5V,20%占空比就等效于,五分之一处的电压,就是1V

第三个分辨率,它等于占空比变化步距

比如有的占空比只能是1%,2%,3%等等,这样以1%的步距跳变,那它的分辨率就是1%

如果是1.1%,1.2,1.3等等这样以0.1%的步距跳变,那它的分辨率就是0.1%

所以这个分辨率就是占空比变化的精细程度,分辨率多高,看你的项目需求,如果是高频率,又要高分辨率,这对硬件电路要求就高了,如果要求不高的话,一般都是1%的分辨率,就够用了

这就是PWM知识点,使用PWM波形,就可以在数字系统等效输出模拟量,就能实现LED控制亮度,电机控速灯功能了

那下面就来分析一下,定时器的输出比较模块是怎么输出PWM波形的

它对应下图这里

左边是CNT和XCR比较的结果,右边就是输出比较电路,最后通过TIM_CH1输出到GPIO引脚上

下面还有三个同样的单元,分别输出到CH2,CH3,CH4

第一个模式是冻结,当CNT=CCR时维持原状态,那CCR和CNT就根本没有用,所以可以理解成CNT和CCR无效,REF保持为原状态,当你正在输出PWM波,突然想暂停一会输出,就可以设置成这个模式,一旦切换为冻结模式后,输出就暂停了

,并且高低电平也维持为暂停时刻的状态,保持不变,这就是冻结模式的作用

这几个有效电平和无效电平,一般是高级定时器里面的一个说法,是和关断,刹车这些功能配合表述的,为了理解方便,可以直接认为,置有效电平就是置高电平,置无效电平就是置低电平

这三个模式就可以用作波形输出了

比如电平反转模式,这个可方便地输出一个频率可调,占空比始终为50%的PWM波形

比如你设置CCR为0,那CNT每次更新清0时,就会产生一次CNT=CRR的事件,这就会导致输出电平翻转一次,每更新两次,输出为一个周期,并且高电平和低电平的时间是始终相等的,也就是占空比始终为50%,当你改变定时器的更新频率时,输出波形的频率也会随之改变,它俩的关系是,输出波形的频率=更新频率/2,因为更新两次输出才为一个周期,这就是匹配时电平翻转模式的用途

这两个很重要,它们可以用于输出频率和占空比都可调的PWM波形,也是我们主要使用的模式

一般我们用向上计数,所以分析向上计数

也是只看向上计数

两个向上计数条件是一样的,区别就是输出的高低电平反过来了,所以PWM模式2,就是PWM模式1输出的取反,改变PWM模式1和PWM模式2,只是改变了REF电平的极性而已,这就是两个模式的区别

我们使用的话,就使用PWM1并且向上计数这一种模式就行

那这种模式是怎么输出频率和占空比都可调的PWM波形的呢

看这个

然后看看PWM是如何计算的

第一个PWM频率

第二个占空比参数

第三个参数分辨率

然后是外设

先看舵机

舵机内部执行逻辑:

PWM信号输入到控制板,给控制板一个指定的目标角度,然后电位器检测输出轴的当前角度,如果大于目标角度,电机就会反转,如果小于目标角度,电机就会正转

,最终使舵机输出固定在指定角度,这就是舵机内部工作流程

我们只需要知道,输入一个PWM波形,输出轴固定在一个角度就行了

然后现在来看看输入PWM信号要求

直流电机

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

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

相关文章

蓝桥杯每日一题:斐波那契(矩阵乘法)

在斐波那契数列中,Fib00,Fib11,FibnFibn−1Fibn−2(n>1) 给定整数 n,求 Fibnmod10000。 输入格式 输入包含不超过 100100 组测试用例。 每个测试用例占一行,包含一个整数 当输入用例 n−1时,表示输入终止,且该…

自由定义表单table组件(antdesign版)

对表单自由排序&#xff0c;决定哪些列显示隐藏&#xff0c;能保存设置过的操作 效果图 使用页&#xff0c;操作列dataIndex要设置为action&#xff0c;forKey必需是唯一的 用的vue2版的antdesign vue写的样式&#xff0c;想用其它的ui框架可以自行修改样式 <customTable …

Brain.js 的力量:构建多样化的人工智能应用程序

机器学习&#xff08;ML&#xff09;是人工智能 (AI) 的一种形式&#xff0c;旨在构建可以从处理的数据中学习或使用数据更好地执行的系统。人工智能是模仿人类智能的系统或机器的总称。 机器学习&#xff08;ML&#xff09;与复杂的数学纠缠在一起&#xff0c;让大多数初学者…

解决nginx代理后,前端拿不到后端自定义的header

先说结论&#xff0c;因为前端和nginx对接&#xff0c;所以需要在nginx添加如下配置向前端暴露header add_header Access-Control-Expose-Headers Authorization 排查过程 1.后端设置了Authorization 的响应头作为token的返回&#xff0c;前后端本地联调没有问题 response.s…

嵌入式驱动学习第六周——内核函数调用(堆栈打印)

前言 在内核中&#xff0c;函数调用堆栈非常重要&#xff0c;因为它可以帮助开发人员理解代码是如何执行的&#xff0c;从而进行调试、性能优化或问题排查。堆栈可以显示当前执行的函数以及导致该函数调用的先前函数&#xff0c;从而形成一个函数调用链。本篇博客就介绍堆栈打印…

软件无线电原理

常规软件无线电接收器&#xff1a; 首先&#xff0c;来自天线的射频信号被放大&#xff0c;通常射频部分利用一个调谐器将感兴趣的频段区域的信号进行放大。这个放大的射频信号被送入一个混频器。来自本振的信号也被送入混频器&#xff0c;其频率由无线电的调谐控制决定。混频器…

【LeetCode】--- 动态规划 集训(二)

目录 一、63. 不同路径 II1.1 题目解析1.2 状态转移方程1.3 解题代码 二、931. 下降路径最小和2.1 题目解析2.2 状态转移方程2.3 解题代码三、174. 地下城游戏3.1 题目解析3.2 状态转移方程3.3 解题代码 一、63. 不同路径 II 题目地址&#xff1a; 不同路径 II 一个机器人位于…

传输层 --- TCP (下篇)

目录 1. 超时重传 1.1. 数据段丢包 1.2. 接收方发送的ACK丢包 1.3. 超时重传的超时时间如何设置 2. 流量控制 3. 滑动窗口 3.1. 初步理解滑动窗口 3.2. 滑动窗口的完善理解 3.3. 关于快重传的补充 3.4. 快重传和超时重传的区别 4. 拥塞控制 4.1. 拥塞控制的宏观认识…

「 典型安全漏洞系列 」11.身份验证漏洞详解

身份验证是验证用户或客户端身份的过程。网站可能会暴露给任何连接到互联网的人。这使得健壮的身份验证机制成为有效的网络安全不可或缺的一部分。 1. 什么是身份验证 身份验证即认证&#xff0c;是验证给定用户或客户端身份的过程。身份验证漏洞使攻击者能够访问敏感数据和功…

Linux网络基础 (三) —— Socket

文章目录 Socket 编程基本概念Socket背景Socket 为了解决什么问题 socketsockaddr结构sockaddrsockaddr_insockaddr 和 sockaddr_in 的关系sockaddr_un 示例代码 &#x1f396; 博主的CSDN主页&#xff1a;Ryan.Alaskan Malamute &#x1f4dc; 博主的代码仓库主页 [ Gitee ]&…

【MySQL】数据操作语句(DML)

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习计网、mysql和算法 ✈️专栏&#xff1a;MySQL学习 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

【论文通读】AgentStudio: A Toolkit for Building General Virtual Agents

AgentStudio: A Toolkit for Building General Virtual Agents 前言AbstractMotivationFramework评估GUI GroudingReal-World Cross-Application Benchmark Suite Conclusion 前言 来自昆仑万象的一篇智能体环境数据大一统框架工作&#xff0c;对未来计算机智能体的发展具有指…

FPGA常用IP核之FIFO学习

IP核是FPGA芯片公司提供的逻辑功能块&#xff0c;在FPGA芯片中可以进行优化和预先配置&#xff0c;可以直接在用户设计的程序中使用&#xff0c;应用范围很广。在FPGA设计开发过程中使用IP核&#xff0c;可以大大的缩短开发周期&#xff0c;高度优化的IP核可以使FPG开发工程师专…

前端三剑客 —— CSS (第六节)

目录 内容回顾&#xff1a; 弹性布局属性介绍 案例演示 商品案例 布局分析 登录案例 网格布局 内容回顾&#xff1a; 变量&#xff1a;定义变量使用 --名称&#xff1a;值&#xff1b; 使用变量&#xff1a; 属性名&#xff1a;var&#xff08;--名称&#xff09;&a…

虚拟主机、VPS主机和云服务器的区别

对于每个建站新手来说&#xff0c;首先要解决的就是服务器购买的问题&#xff0c;目前市面有很多类型的服务器&#xff0c;常见的有&#xff1a;阿里云、腾讯云、Vultr云服务器&#xff0c;也有RackNerd、Cloudways等提供的VPS&#xff0c;还有SiteGround、ChemiCloud 、 Hosti…

数据结构之堆底层实现的循序渐进

题外话 把没写的都补回来! 正题 堆 概念 堆是一棵完全二叉树&#xff0c;因此可以层序的规则采用顺序的方式来高效存储&#xff0c; 大根堆:指根结点比左右孩子都大的堆 小根堆:指根结点比左右孩子都小的堆 性质 1.堆中某个节点的值总是不大于或不小于其父节点的值 2…

鸿蒙OS元服务开发:【(Stage模型)设置应用主窗口】

一、设置应用主窗口说明 在Stage模型下&#xff0c;应用主窗口由UIAbility创建并维护生命周期。在UIAbility的onWindowStageCreate回调中&#xff0c;通过WindowStage获取应用主窗口&#xff0c;即可对其进行属性设置等操作。还可以在应用配置文件中设置应用主窗口的属性&…

每日一题(leetcode1026):节点与其祖先的最大差值--dfs

考虑到只能计算祖先之间的节点差而不能计算兄弟之间的节点差&#xff0c;所以思考使用dfs来解决该题。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), ri…

嵌入式开发学习---(部分)数据结构(无代码)

数据结构 为什么学习数据结构&#xff1f; 1&#xff09;c语言告诉如何写程序&#xff0c;数据结构是如何简洁高效的写程序 2&#xff09;遇到一个实际问题&#xff0c;需要写程序去实现相应功能&#xff0c;需要解决那两个方面的问题&#xff1f; 如何表达数据之间的逻辑规律…

背包问题---

一、背包模型 有一个体积为V的背包,商店有n个物品,每个物品有一个价值v和体积w,每个物品只能被拿一次,问能够装下物品的最大价值。 这里每一种物品只有两种状态即"拿"或"不拿". 设状态dp[i][j]表示到第i个物品为止,拿的物品总体积为j的情况下的最大价…