当前位置: 首页 > article >正文

STM32PWM应用

一、输出比较(OC)

OC(Output Compare)输出比较

  • 可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
  • 每个高级定时器和通用定时器都拥有4个输出比较通道
  • 高级定时器的前3个通道额外拥有死区生成和互补输出的功能

捕获/比较通道的输出部分(通道一)如下:

CNT>=CCR1时,输出模式控制器会输出一个OC1ref,也就是一个输出比较的参考信号,可以映射到至主模式控制器,最常用的是走下面的那一条路到达CC1P极性选择,给这个寄存器写0,信号往上走,信号电平不翻转;给这个寄存器写1,信号往下走,经过一个非门取反,信号电平会发生翻转,原来的参考信号中高低电平会相反。输出使能电路就是要不要输出,OC1引脚就是CH1通道的引脚。

输出模式控制器中的输出比较8种模式,如下图:

图中置有效电平不可以直接理解为就是高电平,置无效电平也不可以直接理解为就是低电平。因为有效电平与输出极性(TIMx_CCER寄存器中的 CCxP位)有直接关系,TIMx_CCER寄存器中置CCxP = 0,选择极性为高电平有效,这时候置有效电平就为高电平;TIMx_CCER寄存器中置CCxP = 1,选择极性为低电平有效,这时候置有效电平就为低电平。

假如我们用PWM模式1,定时器设置为向上计数模式,TIMx_CCER寄存器中置CCxP = 0(在编程库函数是这个参数TIM_OCInitStructure.TIM_OCPolarityTIM_OCPolarity_High)。CNT<CCR时REF置有效电压为高电平输出,CNT>=CCR时,REF置无效电压为低电平输出。相反,如果TIMx_CCER寄存器中置CCxP = 1,CNT<CCR时REF置有效电压为低电平输出,CNT>=CCR时,REF置无效电压为高电平输出

冻结模式:当使用时,状态为暂停时的状态。

匹配时置有效电平/无效电平:是高级定时器里面用的。它俩都是一次性的置完高电平/低电平后,就不管事了,所以这俩模式不适合输出连续变化的波形。

匹配时电平翻转:可以输出一个连续的波形,输出频率=定时器频率/2,如下,会输出一个占空比为50%的波形。

强制为无效电平/无效电平:把REF强制设置为高电平/低电平。

PWM模式1/模式2:可以输出频率和占空比可调的PWM波形,功能如上图,注意一点的是定时器计数方式。

二、PWM:

1、简介

必须在具有惯性系统下应用,如灯亮灭、电机调速等,所谓的惯性,如灯灭掉,不会立马熄灭,而是慢慢的熄灭;电机也是慢慢的停止。

2、基本结构

3、参数计算


http://www.kler.cn/news/335679.html

相关文章:

  • Python中的观察者模式:从基础到实战
  • detectron2/layers源码笔记
  • 缓存数据减轻服务器压力
  • Hive数仓操作(二)
  • Go语言实现长连接并发框架 - 请求分发器
  • Rust-模式匹配
  • 2024年9月30日--10月6日(ue5肉鸽结束)
  • 猫猫cpu的缓存(NW)
  • 单片机长短按简单实现
  • 全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用
  • Nginx基础详解5(nginx集群、四七层的负载均衡、Jmeter工具的使用、实验验证集群的性能与单节点的性能)
  • 解决Ubuntu无法找到python3.7的包的问题 E: Couldn‘t find any package by glob ‘python3.7‘
  • 华为仓颉语言入门(9):for-in表达式
  • Pikichu-xss实验案例-通过xss获取cookie
  • 基于Python的人工智能应用案例系列(15):LSTM酒类销售预测
  • CMake构建工程基本要素
  • 文本到语音或视频的构想
  • 什么是数字化智能工厂的组成
  • Microsoft Edge 离线安装包制作或获取方法和下载地址分享
  • 从DBA是“擦车的”谈起