正点原子--STM32通用定时器学习笔记(2)

1. 通用定时器输入捕获部分框图介绍

捕获/比较通道的输入部分(通道1)

输入通道映射CC1S[1:0]→采样频率CKD[1:0]→滤波方式IC1F[3:0]→边沿检测方式CC1P→捕获分频ICPS[1:0]→使能捕获CC1E

输入部分对相应的TIx输入信号采样,并产生一个滤波后的信号TIxF。之后带极性选择的边缘检测器产生一个信号(TIxFPx),它可以作为从模式控制器的输入触发或者作为捕获控制。该信号通过预分频进入捕获寄存器(ICxPS)。

按照上述配置流程,依次配置对应的寄存器。

首先配置输入通道映射CC1S[1:0],配置为01从TI1FP1线路输入,配置为10从TI2FP1线路输入,配置为11从TRC线路输入,如下图所示。

接下来设置采样频率:控制寄存器 1(TIMx_CR1)的CKD[1:0]  ⬇⬇⬇设置滤波方式选择: 捕获/ 比较模式寄存器 1(TIMx_CCMR1)的输入捕获部分⬇⬇​​​​​​​⬇​​​​​​​选择边沿检测方式: 捕获/ 比较使能寄存器(TIMx_CCER)⬇​​​​​​​⬇​​​​​​​⬇​​​​​​​

设置输入通道映射: 捕获/ 比较模式寄存器 1(TIMx_CCMR1)⬇​​​​​​​⬇​​​​​​​⬇​​​​​​​

使能捕获: 捕获/ 比较使能寄存器(TIMx_CCER)

以上配置好后所产生的IC1PS来到捕获/比较通道1的主电路部分,也就到了下一部分的学习。 

捕获/比较通道1的主电路---输入部分

上图深灰色部分为输出部分,我们不看它。

①配置CC1S为输入,经过或门1输出信号1;

②配置捕获使能→1,以及捕获分频后的信号→1,两者都为1,经过与门1后输出为1(这里的“捕获到信号”和“捕获使能”是通过硬件产生,也可通过软件产生捕获事件,两者二选一)

或门1输出信号1,与门1输出信号1 经过 或门2 输出信号也为1,两者都为1,那么与门2输出为1,会触发捕获事件,此时会把计数器的值转移到捕获/比较影子寄存器,由于捕获/比较影子寄存器不可直接访问,便会再次把数值转移到捕获/比较预装载寄存器(CCRx1~4)让用户读取,什么时候转移呢?当CCR1读操作完成时产生信号1,经过与门3输出1,这时就会把影子寄存器的值转移到预装载寄存器中,程序员直接读取CCR1寄存器的值就相当于直接获取了计数器的值。

举个栗子,假设通道1配置为上升沿触发,当捕获到上升沿信号产生捕获事件,计数器里的数值会转移到捕获/比较影子寄存器,再转移到捕获/比较预装载寄存器,这时读取CCR1的值记为CNT1,当捕获到上升沿时通过硬件立刻配置为下降沿触发,当捕获到下降沿后获取对应的计数值为CNT2,CNT2-CNT1的值就是一个高电平的计数个数,通过计数个数以及定时器计数频率就可以算出高电平持续的时间。

2. 通用定时器输入捕获脉宽测量原理


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

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

相关文章

MPLS——多协议标签交换

目录 1 多协议标签交换 MPLS 1.1 MPLS 的工作原理 1.1.1 MPLS 工作特点 1.1.2 MPLS 协议的基本原理 1.1.3 MPLS 的基本工作过程 1.2 转发等价类 FEC 1.2.1 FEC 用于负载平衡 1.3 MPLS 首部的位置与格式 1.3.1 MPLS 首部的位置 1.3.2 MPLS 首部的格式 1.4 新一代的…

STM32 HAL NTC(3950 10k)查表法

NTC(Negative Temperature Coefficient)是指随温度上升电阻呈指数关系减小、具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制…

vue项目开发vscode配置

配置代码片段 步骤如下: 文件->首选项->配置用户代码片段新增全局代码片段起全局代码片段文件名“xxx.code-snippets” 这里以配置vue2初始代码片段为例,配置具体代码片段 {"name": "vue-sph","version": "…

modelsim仿真使用到vivado的IP,该如何使用!

modelsim仿真时,如果使用到了vivado的IP就会报错,本次就告诉大家如何将vivado的IP添加到modelsim中直接仿真。 一、生成ini文件以及IP打包 打开vivado,点击上方的Tools-->Compile Simulation Libraries得到如下界面 simulator&#xff1…

【Python基础】案例分析:泰坦尼克分析

泰坦尼克分析 1 目的: 熟悉数据集熟悉seaborn各种操作作 import pandas as pd import seaborn as sns import numpy as np import matplotlib.pyplot as plt %matplotlib inline home rdata df sns.load_dataset(titanic, data_homehome) df.head()survivedpcl…

mmdetection使用自己的voc数据集训练模型实战

一.自己数据集整理 将labelimg格式数据集进行整理 1.1. 更换图片后缀为jpg import os import shutilroot_path/media/ai-developer/imgfileos.listdir(root_path)for img in file:if img.endswith(jpeg) or img.endswith(JPG) or img.endswith(png):img_pathos.path.join(root…

理想汽车学华为,年终奖红包有点大(含算法原题)

理想年终奖红包 2月5日,有微博用户发帖称,脉脉上看到,今年理想汽车的年终奖红包有点大。 对此,李想转发并评论: ❝ 不能只学华为的流程,而不学华为的利益分配。奖罚不分明,是组织低效的最大原因…

C++ lambda [],[=] ,[],[this] 的使用

在c11标准中引入了lambda表达式,一般用于定义匿名函数 [],[] ,[&],[this] 都是捕获列表 [] 的作用: 什么也不捕获 [] 的作用: 按值捕获所有变量 [&] 的作用: 引用捕获所有外部作用域内的变量 [this]的作用&#xf…

怎么理解 Redis 事务

背景 在面试中经常会被问到,redis支持事务吗?事务是怎么实现的?事务会回滚吗?又是一键三连,我下面分析下,看看能不能吊打面试官 什么是Redis事务 事务是一个单独的隔离操作:事务中的所有命令…

企业为什么选择SASE?香港电讯专家给你答案!

2019年,Gartner发布了全新的网络安全模型:安全访问服务边缘(Secure Access Service Edge, SASE),并预测到2025年80%的企业将使用SASE/SSE架构统一网络、云服务和私人应用程序的安全访问。那么企业为什么选择SASE&#…

Web课程学习笔记--CSS-Position学习

CSS Position学习 CSS Position有四个属性&#xff1a; relativeabsolutefixedstatic&#xff08;默认&#xff09; 样例 <div id"parent"><div id"sub1">sub1</div><div id"sub2">sub2</div> </div>su…

Git合并多个commit

git rebase -i commitId 假设想要合并最后3个commit&#xff0c; git log显示 commit id 1 commit id 2 commit id 3 commit id 4 则执行git rebase -i commitId4. 注意是4&#xff0c;不是3. 然后&#xff0c;pick最老的commit (commit id 3). https://blog.csdn.net/qiao…

企业计算机服务器中了mallox勒索病毒怎么办,mallox勒索病毒处理流程

由于网络技术的不断发展与应用&#xff0c;越来越多的企业开始依赖计算机技术来提高企业效率。然而&#xff0c;网络安全威胁无处不在&#xff0c;严重影响着企业计算机服务器中的数据安全。近期&#xff0c;云天数据恢复中心接到许多中大型企业的求助&#xff0c;企业的多台服…

Quicker读取浏览器的书签(包括firefox火狐)

从edge换了火狐&#xff0c;但是quicker不能读取本地的bookmarks文件了&#xff0c;就研究了一下。 方法1&#xff1a;读取本地Bookmarks文件&#xff08;仅谷歌内核浏览器&#xff09; 谷歌内核的浏览器本地会有Bookmarks文件&#xff0c;放了所有的书签数据&#xff0c;直接…

(注解配置AOP)学习Spring的第十七天

基于注解配置的AOP 来看注解式开发 : 先把目标与通知放到Spring里管理 : Service("userService") public class UserServiceImpl implements UserService {Overridepublic void show1() {System.out.println("show1......");}Overridepublic void show2…

SpringBoot 事务管理Transactional 数据回滚 数据一致性

介绍 SpringBoot当中的事物他保证了一致性&#xff0c;要么全部一起成功&#xff08;提交&#xff09;&#xff0c;要么一起失败&#xff0c;失败&#xff08;回滚&#xff09;后数据会回到当初的样子&#xff0c;是一组操作的集合。 事物类型 开启事物提交事物回滚事物 案…

安卓学习笔记之八:本地化的简单例子(kotlin版本)

本地化及多语言支持&#xff0c;是目前手机软件必须面对的问题&#xff0c;这里用一个简单的例子来说明在Android Studio下如何实现。 创建一个Empty Views Activity项目&#xff0c;语言选择Kotlin 实现一个简单的功能&#xff0c;一条欢迎&#xff0c;一个按钮&#xff0c;…

远程主机可能不符合glibc和libstdc++ VS Code服务器的先决条件

报错信息 VSCode无法连接远程服务器&#xff0c;终端一直提醒&#xff1a; [22:46:01.906] > Waiting for server log... [22:46:01.936] > Waiting for server log... [22:46:01.951] > [22:46:01.967] > Waiting for server log... [22:46:01.982] > [22:…

幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤

幻兽帕鲁怎么样 幻兽帕鲁是一款集合了多种游戏元素的游戏&#xff0c;它巧妙地融合了《方舟:生存进化》的野外生存挑战、《荒野之息》的开放世界探索、《魔兽世界》的多元角色互动以及宝可梦的精灵捕捉与培养等经典游戏元素。游戏的核心系统是「帕鲁」捕获&#xff0c;你可以让…

【动态规划】【子序列除重】【C++算法】1987不同的好子序列数目

作者推荐 【动态规划】【状态压缩】【2次选择】【广度搜索】1494. 并行课程 II 本文涉及知识点 动态规划汇总 LeetCode1987:不同的好子序列数目 给你一个二进制字符串 binary 。 binary 的一个 子序列 如果是 非空 的且没有 前导 0 &#xff08;除非数字是 “0” 本身&…