STM32F407-14.3.10-01PWM模式

news2025/1/14 20:45:41

PWM 模式 


脉冲宽度调制模式可以生成一个信号,该信号频率由 TIMx_ARR⑩ 寄存器值决定,其占空比由 TIMx_CCRx⑤ 寄存器值决定。
通过向 TIMx_CCMRx 寄存器中的 OCxM⑰ 位写入 110 (PWM 模式 1)或 111 (PWM 模式 2),可以独立选择各通道 (每个 OCx⑲ 输出对应一个 PWM)的 PWM 模式。必须通过将 TIMx_CCMRx 寄存器中的 OCxPE⑫ 位置 1 使能相应预装载寄存器,最后通过将 TIMx_CR1 寄存器中的 ARPE⑮ 位置 1 使能自动重载预装载寄存器(在递增计数或中心对齐模式下)。
由于只有在发生更新事件时预装载寄存器才会传送到影子寄存器,因此启动计数器之前,必须通过将 TIMx_EGR 寄存器中的 UG⑧ 位置 1 来初始化所有寄存器。
OCx⑲ 极性可使用 TIMx_CCER 寄存器的 CCxP⑱ 位来编程。既可以设为高电平有效,也可以设为低电平有效。通过 CCxE、CCxNE、MOE、OSSI 和 OSSR 位(21)(TIMx_CCER 和 TIMx_BDTR 寄存器)的组合使能 OCx⑲ 输出。有关详细信息,请参见 TIMx_CCER 寄存器 说明。
在 PWM 模式(1 或 2)下,TIMx_CNT⑦ 总是与 TIMx_CCRx⑥ 进行比较,以确定是 TIMx_CCRx ≤ TIMx_CNT 还是 TIMx_CNT ≤ TIMx_CCRx(取决于计数器计数方向)。
根据 TIMx_CR1 寄存器中的 CMS② 位状态,定时器能够产生边沿对齐模式或中心对齐模式的 PWM 信号。
-------------------------------------------------------------------------------------------------------------------------


 


-------------------------------------------------------------------------------------------------------------------------

PWM 边沿对齐模式 


● 递增计数配置 
当 TIMx_CR1 寄存器中的 DIR① 位为低时执行递增计数。请参见第 332 页的递增计数模 式一节。 
以下以 PWM 模式 1 为例。只要 ⑦TIMx_CNT < TIMx_CCRx⑥,PWM 参考信号 OCxREF⑯ 便为高电平,否则为低电平。如果 TIMx_CCRx⑥ 中的比较值大于自动重载值(TIMx_ARR⑨ 中),则 OCxREF⑯ 保持为“1”。如果比较值为 0,则 OCxRef 保持为“0”。图 103 举例 介绍边沿对齐模式的一些 PWM 波形 (⑩TIMx_ARR=8)。 
-------------------------------------------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------------------------------------------
● 递减计数配置
 当 TIMx_CR1 寄存器中的 DIR① 位为高时执行递减计数。请参见第 335 页的递减计数模式一节。 在 PWM 模式 1 下,只要 ⑦TIMx_CNT > TIMx_CCRx⑥,参考信号 OCxRef⑯ 即为低电平, 否则其为高电平。如果 TIMx_CCRx 中的比较值大于 TIMx_ARR⑩ 中的自动重载值,则 OCxREF⑯ 保持为“1”。此模式下不可能产生 0% 的 PWM 波形。 

PWM 中心对齐模式 
当 TIMx_CR1 寄存器中的 CMS② 位不为“00”(其余所有配置对 ⑯OCxRef/OCx⑲ 信号具有相同的作用),中心对齐模式生效。根据 CMS② 位的配置,可以在计数器递增计数、递减计数 或同时递增和递减计数时将比较标志置 1。TIMx_CR1 寄存器中的方向位 (DIR)① 由硬件更新,不得通过软件更改。请参见第 337 页的中心对齐模式(递增/递减计数)。
图 104 显示了中心对齐模式的 PWM 波形,在此例中: 
● TIMx_ARR=8, ⑩
● PWM 模式为 PWM 模式 1,
● 在根据 TIMx_CR1 寄存器中 CMS=01②  而选择的中心对齐模式 1 下,当计数器递减计数时,比较标志置 1。 
-------------------------------------------------------------------------------------------------------------------------


-------------------------------------------------------------------------------------------------------------------------
中心对齐模式使用建议:

 
● 启动中心对齐模式时将使用当前的递增/递减计数配置。这意味着计数器将根据写入 TIMx_CR1 寄存器中 DIR① 位的值进行递增或递减计数。此外,不得同时通过软件修改 DIR① 和 CMS② 位。 
● 不建议在运行中心对齐模式时对计数器执行写操作,否则将发生意想不到的结果。尤 其是: 
- 如果写入计数器中的值大于自动重载值 (TIMx_CNT>TIMx_ARR),计数方向不会更新。例如,如果计数器之前递增计数,则继续递增计数。 
- 如果向计数器写入 0 或 TIMx_ARR⑩ 的值,计数方向会更新,但不生成更新事件 UEV。 
● 使用中心对齐模式最为保险的方法是:在启动计数器前通过软件生成更新(将 TIMx_EGR 寄存器中的 UG⑧ 位置 1),并且不要在计数器运行过程中对其执行写操作。 

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

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

相关文章

C++学习之路(十七)C++ 用Qt5实现一个工具箱(增加托盘图标并且增加显示和退出菜单)- 示例代码拆分讲解

上篇文章&#xff0c;我们用 Qt5 实现了在小工具箱中添加了《为屏幕颜色提取功能增加一个点击复制的功能》功能。今天我们增加一个比较正式点的功能&#xff0c;就是增加托盘图标并且增加显示和退出菜单&#xff08;越来越像回事了吧 &#x1f601; &#xff09;。下面我们就来…

ssm医院门诊互联电子病历管理信息系统源码和论文

摘 要 网络的广泛应用给生活带来了十分的便利。所以把医院门诊互联电子病历管理与现在网络相结合&#xff0c;利用java技术建设医院门诊互联电子病历管理信息系统&#xff0c;实现医院门诊互联电子病历的信息化。则对于进一步提高医院门诊互联电子病历管理发展&#xff0c;对…

【电机控制】PMSM无感foc控制(五)相电流检测及重构 — 单电阻采样

0. 前言 相电流采样再FOC控制中是一个关键的环节&#xff0c;鉴于成本和易用性&#xff0c;目前应用较多的相电流采样方式是分流电阻采样&#xff0c;包括单电阻、双电阻以及三电阻采样法。 本章节先讲解单电阻采样相电流的检测及重构技术&#xff0c;在下一章讲解双电阻和三电…

项目实战一-性能测试筑基

这里写目录标题 一、为什么程序会出现性能问题、性能问题是怎么出现的&#xff1f;二、功能测试和性能测试的区别是什么&#xff1f;三、核心性能指标1、用户角度核心a、响应时间&#xff1a;b、并发量 2、成本角度3、运维角度面试题、并发量和吞吐量得区别&#xff1f;a、吞吐…

Qt 如何操作SQLite3数据库?数据库创建和表格的增删改查?

# 前言 项目源码下载 https://gitcode.com/m0_45463480/QSQLite3/tree/main # 第一步 项目配置 平台:windows10 Qt版本:Qt 5.14.2 在.pro添加 QT += sql 需要的头文件 #include <QSqlDatabase>#include <QSqlError>#include <QSqlQuery>#include &…

【强化学习算法】Q-learning原理及实现

实现代码github仓库&#xff1a;RL-BaselineCode 代码库将持续更新&#xff0c;希望得到您的支持⭐&#xff0c;让我们一起进步&#xff01; 文章目录 1. 原理讲解1.1 Q值更新公式1.2 ε-greedy随机方法 2. 算法实现2.1 算法简要流程2.2 游戏场景2.3 算法实现 3. 参考文章 1. 原…

[架构之路-256]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 架构设计 - 软件系统不同层次的复用与软件系统向越来越复杂的方向聚合

目录 前言&#xff1a; 一、CPU寄存器级的复用&#xff1a;CPU寄存器 二、指令级复用&#xff1a;二进制指令 三、过程级复用&#xff1a;汇编语言 四、函数级复用&#xff1a;C语言 五、对象级复用&#xff1a;C, Java, Python 六、组件级复用 七、服务级复用 八、微…

win10下使用内置Linux

Win10安装Ubuntu子系统 #推荐博客 https://www.cnblogs.com/xiaoliangge/p/9124089.html #推荐视频 https://www.bilibili.com/video/BV184411i7As?spm_id_from333.337.search-card.all.click #Ubuntu18.04安装教程 https://edu.csdn.net/skill/gml/gml-214229ddcc6a496ba175…

基于hadoop下的Kafka分布式安装

简介 Kafka是一种分布式流处理平台&#xff0c;它具有高吞吐量、可扩展性、可靠性、实时性和灵活性等优点。它能够支持每秒数百万条消息的传输&#xff0c;并且可以通过增加节点来增加吞吐量和存储容量。Kafka通过将数据复制到多个节点来实现数据冗余和高可用性&#xff0c;即使…

JAVA代码优化:Easy Excel(操作Excel文件的开源工具)

Easy Excel官网&#xff1a; EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel (alibaba.com) https://easyexcel.opensource.alibaba.com/ Easy Excel的特点和优势&#xff1a; 简单易用&#xff1a;Easy Excel提供了简洁的API&#xff0c;使用起来非常方便。开发…

xxl-job(分布式调度任务)

简介 针对分布式任务调度的需求&#xff0c;市场上出现了很多的产品&#xff1a; 1)TBSchedule&#xff1a;淘宝推出的一款非常优秀的高性能分布式调度框架&#xff0c;目前被应用于阿里&#xff0c;京东&#xff0c;支付宝&#xff0c;国美等很多互联网企业的流程调度系统中。…

Linux 基本语句_14_信号灯实验

原理&#xff1a; Send进程通过建立共享内存区域&#xff0c;并向其中写入数据&#xff0c;Recive通过与共享内存连接读取其中的数据。 但是如果进程进行读取操作的时候其他进程再次写入会产生数据丢失&#xff0c;产生竞态&#xff0c;为了确保在某段时间内只有一个操作&…

【Node.js】Node.js环境下载与安装教程(Windows系统)

前言 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;可以让你使用JavaScript进行服务器端编程。本教程将向你展示如何在Windows系统上下载和安装Node.js环境。 下载 首先&#xff0c;你需要下载Node.js环境。 打开Node.js官方网站&#xff1a;https://no…

Leetcode2661. 找出叠涂元素

Every day a Leetcode 题目来源&#xff1a;2661. 找出叠涂元素 解法1&#xff1a;哈希 题目很绕&#xff0c;理解题意后就很简单。 由于矩阵 mat 中每一个元素都不同&#xff0c;并且都在数组 arr 中&#xff0c;所以首先我们用一个哈希表 hash 来存储 mat 中每一个元素的…

C语言中的动态内存管理

在C语言中&#xff0c;动态内存管理是通过一系列的标准库函数来实现的&#xff0c;这些函数包括malloc, free, calloc 和 realloc。它们允许程序在运行时动态地分配和释放内存&#xff0c;这是管理复杂数据结构&#xff08;如链表、树等&#xff09;时非常有用的功能。 为什么…

为何要3次握手?TCP协议的稳定性保障机制

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

MYSQL练题笔记-聚合函数-每月交易

一、题目相关内容 1&#xff09;相关的表和题目 2&#xff09;帮助理解题目的示例&#xff0c;提供返回结果的格式 二、初步的理解 是需要知道每个月和每个国家/地区的事务数及其总金额&#xff0c;每个月和每个国家/地区已批准的事务数及其总金额&#xff1b;以上的理解还是…

RPC和REST对比

RPC和REST对比 参考学习 RPC 和 REST 之间有什么区别&#xff1f; 当我们对比RPC和REST时&#xff0c;其实是在对比RPC风格的API和REST风格的API&#xff0c;后者通常成为RESTful API。 远程过程调用&#xff08;RPC&#xff09;和 REST 是 API 设计中的两种架构风格。API …

【计算机组成原理】存储器知识

目录 1、存储器分类 1.1、按存储介质分类 1.2、按存取方式分类 1.3、按信息的可改写性分类 1.4、按信息的可保存性分类 1.5、按功能和存取速度分类 2、存储器技术指标 2.1、存储容量 2.2、存取速度 3、存储系统层次结构 4、主存的基本结构 5、主存中数据的存放 5.…

分类预测 | Matlab实现FA-SVM萤火虫算法优化支持向量机的多变量输入数据分类预测

分类预测 | Matlab实现FA-SVM萤火虫算法优化支持向量机的多变量输入数据分类预测 目录 分类预测 | Matlab实现FA-SVM萤火虫算法优化支持向量机的多变量输入数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现FA-SVM萤火虫算法优化支持向量机的多变量…