STM32基础篇:定时器 × 输入捕获

news2024/9/21 20:42:43

通道的概念

如下图右半部分,为定时器的总体结构框图:

可以看出,在时基单元下方,有四个长条形的结构,我们将其称之为:通道1~通道4;每一个通道都会连接一个IO引脚(对应左半部分IO引脚)。

有了这些引脚之后,我们即可以把一些外部信号通过引脚输入到定时器内部进行测量(称之为输入捕获),也可以通过定时器产生一些精确定时的信号通过引脚输出(称之为输出比较)。


输入捕获简介

当我们把外部的信号通过引脚输入进来,定时器会去检测输入信号的变化,比如说当外部信号产生跳变(上升沿或下降沿)时,定时器会对计数器的当前值进行“拍照”,并存储在CCR寄存器里的过程,称之为输入捕获

把CCR里面的值读取出来,就知道跳变的时间了。CCR:捕获/比较寄存器,既可以被输入捕获所使用,也可以被输出比较所使用

  • 关于“拍照”的作用

1、测脉宽:当我们想测量脉冲信号的脉宽时,我们可以同时把这个信号输入给通道1和通道2,让通道1去测量这个信号的上升沿,通道2去测量这个信号的下降沿。将CCR1和CCR2里面的值相减就能得到脉宽。

上述方法需要两个IO引脚。

2、测PWM参数:对于PWM信号(脉冲宽度调制信号),有两个重要的参数:周期和占空比;而这两个参数可通过输入捕获+从模式控制器去测量。


输入捕获的工作原理

如下为输入捕获的内部结构(简要版)

输入捕获的简要结构框图

-----模块简要分析-----

1、输入滤波:将外部信号的毛刺进行滤除,从而得到一个纯净的信号;

2、边沿检测:对输入信号的变换边缘进行检测。它有两个输出,一个叫做上升沿脉冲,一个叫做下降沿脉冲,分别对应了上升/下降沿的响应。

3、信号选择:实际上就是一个多路复用器,用来对捕获上升沿还是捕获下降沿进行选择。

4、分频:对应一个分频器,例如将分频系数设置为2,那么左侧每产生两个脉冲,右侧才会输出一个脉冲。

输出的脉冲会触发一个CCx事件(x对应通道号),这个事件会触发“拍照”功能,也就是把计数器的值存储在CCR里面。并且可通过配置,由CCx去产生一个中断。

【注意】其分频系数包括:1 / 2 / 4 / 8


1、输入滤波

原理:我们可以等间隔对输入信号进行采样(读取信号高低电平),再规定一个正整数N,例如当一开始为低电平时,只有连续采集到超过N个高电平,才会认为它是一个从低电平到高电平的上升沿。

以N=4为例,如下图所示:

基于上述工作原理,对于滤波器有两个重要参数采样率、判定次数N。通过配置这两个参数来改变滤波器的性能。

采样率通过内部RCC的时钟频率CN_INT分频( 1 / 2 / 4 )后来获取;对于输入滤波器,其参数也可以设置,通过设置其参数,可继续对DTS进行分频,而且也可以设置判定次数N。对于输入滤波器来说,可以取以下的16个值之一:

0000不进行滤波1000f=DTS/8N=6
0001f=CK_INTN=21001f=DTS/8N=8
0010f=CK_INTN=41010f=DTS/16N=5
0011f=CK_INTN=81011f=DTS/16N=6
0100f=DTS/2N=61100f=DTS/16N=8
0101f=DTS/2N=81101f=DTS/32N=5
0110f=DTS/4N=61110f=DTS/32N=6
0111f=DTS/4N=81111f=DTS/32N=8

2、信号选择

对于通道1和通道2,可以相互引用(上图所示);对于通道3和通道4之间也可以相互引用。

小的复用器用于选择检测上升沿还是下降沿,大的复用器用于选择通道对于前文中,输入捕获的简要版结构框图,其省略了大的复用器

  • 相互引用的作用

只用一个IO引脚测脉宽:假如我们还是要测量脉冲信号的脉宽,将输入信号接到通道1,而通道2悬空;输入信号经过边沿检测,产生一路上升沿脉冲和下降沿脉冲后,通过相互引用分别进入IC1和IC2,随后进入CCR1和CCR2,读取数据得到脉宽。


3、CCx事件和CCx中断

当CCx事件产生时,可以触发CCx中断。当CCx事件发生时,CCx中断标志位会由硬件自动置1,从而触发中断,但其不会自动清0,需要手动清除。

附输入捕获模块的完整版框图:


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

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

相关文章

OZON什么产品好卖丨OZON婴儿用具产品

Top1 摇铃 Деревянная стойка тренажер Монтессори для мобилей и игрушек для новорожденных / развивающая дуга 商品id:1557614414 月销量:707 OZON婴儿用具…

MSSQL 手工注入(第一关)

简介 SQL注入是一种安全漏洞,通过它可以执行意外的SQL命令或访问数据库中的信息。MSSQL注入通常发生在应用程序将用户输入作为SQL查询的一部分执行时,而没有对输入进行适当的验证或清理。 以下是MSSQL手工注入的流程: 一、打开靶场选择第一关…

进阶岛 多模态模型部署微调实践

一、任务介绍 follow 教学文档和视频使用QLoRA进行微调模型,复现微调效果,并能成功讲出梗图.尝试使用LoRA,或调整xtuner的config,如LoRA rank,学习率。看模型Loss会如何变化,并记录调整后效果(选做&#x…

【Electron】桌面应用开发启动直接打开一个网址或者浏览器打开一个网址

【Electron】桌面应用开发启动时直接打开一个网址或者跳转浏览器打开一个网址 前一篇有写过 Electron 桌面应用开发快速入门到打包Windows应用程序 但是现在需要程序打开的时候直接打开一个链接,在程序的窗口打开或者直接跳转浏览器打开 一、启动时直接打开一个网…

后端完成api顺序

contoroller层 Service层 点击getById,如果没有getById函数就先声明一个 然后完成函数体 db层 数据访问对象.数据库方法 //作用是提供对数据库中特定表的操作方法

【Hot100】LeetCode—437. 路径总和 III

目录 1- 思路前缀和哈希表dfs 2- 实现⭐437. 路径总和 III——题解思路 3- ACM 实现 题目连接:437. 路径总和 III 1- 思路 前缀和哈希表dfs ① 前缀和 求二叉树的前缀和,每求一次用一个 sum 传参记录更新 ② 哈希表 key 为前缀和 ,value…

k8s集群部署(sealos)

目录 部署Ubuntu22和k8s环境 环境准备 虚拟机安装ubantu 配置hosts 配置静态ip地址 配置国内阿里云的源 Master节点安装sealos软件 启用root和允许ssh远程连接 禁用firewalld和iptables 关闭交换分区 配置ipvs功能 配置时间同步 使用sealos部署k8s集群 增加K8s的ma…

[Linux#46][线程->网络] 单例模式 | 饿汉与懒汉 | 自旋锁 |读写锁 | 网络基础 | 书单

目录 1.线程安全 1.1 线程安全的单例模式 1.2 饿汉与懒汉实现方式: 实操 2.锁 3.读者写者问题 实操 4.网络基础 4.1 初始协议 书单: 1.线程安全 STL中的容器和智能指针的线程安全性整理如下:STL容器线程安全性: 状态&…

zdppy+vue3+onlyoffice文档管理系统实战 20240823上课笔记 Python缓存框架的进一步封装

上节课遗留问题 封装一些简单的方法,比如: set:设置缓存,带默认超时时间get:获取缓存delete:删除缓存delete_all:清空缓存 封装set方法 基本方法 from zdppy_cache import Cache# 创建缓存…

文字游侠AI工具:一个高效内容创作的革命性助手,效率一键提高20倍!

在当今快节奏、高效率要求的信息时代,传统的内容生产方式已经难以满足不断增长的网络信息需求。随着人工智能技术的飞速发展,一系列创新的AI工具应运而生,极大地改变了我们处理信息和创造内容的方式。其中,文字游侠AI工具凭借其出…

校友会系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,校友管理,生活模块管理,兼职信息管理,表白墙管理,我的收藏管理,校友论坛,系统管理 微信端账号功能包括&…

css实现闪烁渐变背景,@property自定义属性

自 2024 年 7 月起,此功能适用于最新的设备和浏览器版本。此功能可能无法在较旧的设备或浏览器中使用。 property 是 CSS 中一个相对较新的功能,主要用于定义自定义属性(即 CSS 变量)的类型、继承性以及初始值。它允许开发者更好地…

DevEco Studio 预览器报错踩坑

This module is referencing one or more HSPs and cannot be previewed. To preview components in an HSP, switch to the HSP first. 不知道大家遇见这个问题没有 是因为我们在使用name跳转别的模块的页面时 引入了hsp模块进来 所以他在编译的时候 告诉我们这个模块中引…

pyro 教程 时间序列 单变量,重尾,python pytorch,教程和实例 Forecasting预测,布朗运动项、偏差项和协变量项

预测I:单变量,重尾 本教程介绍了预测模块,用Pyro模型进行预测的框架。本教程只涵盖单变量模型和简单的可能性。本教程假设读者已经熟悉慢病毒感染和张量形状. 另请参见: 预测II:状态空间模型 预测三:层次模型 摘要 要创建预测模型: 创建预测模型班级…

加密学中的零知识证明(Zero-Knowledge Proof, ZKP)到底是什么?

加密学中的零知识证明(Zero-Knowledge Proof, ZKP)到底是什么? 引言 在加密学的应用中,零知识证明(Zero-Knowledge Proof, ZKP)无疑是一颗璀璨的明星。它不仅挑战了我们对信息验证的传统认知,…

如何使用ssm实现理发店会员管理系统的设计和实现+vue

TOC ssm089理发店会员管理系统的设计和实现vue 绪论 1.1 选题背景 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。计算机软件可以针对不同行业的营业…

C语言刷题日记(附详解)(2)

一、有理数加法 输入格式: 输入在一行中按照a1/b1 a2/b2的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。 输出格式: 在一行中按照a/b的格式输出两个有理数的和。注意必须是该有理数的最简分数形式,若…

OpenCSG全网首发!Phi-3.5 Mini Instruct全参微调中文版

前沿科技速递🚀 🎉 震撼发布!OpenCSG正式推出全参数微调的Phi-3.5-mini-instruct中文版模型! 🔍 本次发布的Phi-3.5-mini-instruct中文版模型基于最新的Phi-3.5架构,经过全参数微调,专为中文场景…

软件测试——JMeter安装配置

文章目录 JMeter介绍JMeter下载及配置配置错误 提示此时不应有...修改语言为中文 JMeter介绍 Apache JMeter 是 Apache 组织基于 Java 开发的压⼒测试⼯具,⽤于对软件做性能测试 JMeter下载及配置 环境要求:JDK版本在1.8及以上 下载压缩包,…

设计模式—代理模式

文章目录 以前自己做的笔记动态代理(重点)1.基于jdk的动态代理2.基于cglib的动态代理 新资料第 15 章 代理模式1、代理模式的基本介绍2、静态代码模式3、动态代理模式4、Cglib 代理模式5、代理模式(Proxy)的变体 代理模式是给某一个对象提供一个代理,并通过代理对象…