江协科技STM32:TIM输出比较

2024-04-07 07:04

本文主要是介绍江协科技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信号要求

直流电机

这篇关于江协科技STM32:TIM输出比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881936

相关文章

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

Python使用Colorama库美化终端输出的操作示例

《Python使用Colorama库美化终端输出的操作示例》在开发命令行工具或调试程序时,我们可能会希望通过颜色来区分重要信息,比如警告、错误、提示等,而Colorama是一个简单易用的Python库... 目录python Colorama 库详解:终端输出美化的神器1. Colorama 是什么?2.

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展

【科技明说 | 科技热点关注】 2024戴尔科技峰会在8月如期举行,虽然因事未能抵达现场参加,我只是观看了网上在线直播,也未能采访到DTF现场重要与会者,但是通过数十年对戴尔的跟踪与观察,我觉得2024戴尔科技峰会给业界传递了6大重要信号。不妨简单聊聊:从戴尔公司中国大饭店DTF大会,看科技外企如何在中国市场发展? 1)退出中国的谣言不攻自破。 之前有不良媒体宣扬戴尔将退出中国的谣言,随着2

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系