STM32定时器(输入捕获)

2023-11-01

 上一章讲了输出比较的内容,输出比较就是定时器自增,同时和CCR比较,按照自己设置的比较要求,输出REF高低电平,这一章我们讲下面结构图输出比较左边部分,也就是输入捕获

首先,介绍一下输入捕获

IC(input capture)输入捕获,输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值就将被锁存到CCR中,可用于测量PWM波形的频率,占空比,脉冲间隔,电平持续时间参数等

每个高级定时器和通用定时器都拥有4个输入捕获通道,因为和输出比较共用一个通道,所以一个通道只能执行输入捕获或者输出比较

输入捕获可配置为PWMI模式,同时测量频率和占空比

可配合主从触发模式,实现硬件全自动测量

简单来说,输入捕获就是用来测量引脚输入的PWM信号的频率占空比等参数,既然说到了测量的部分,那就简单了解一下频率测量的相关知识,   还有就是对于STM32来说,只能测量数字信号,如果要测量正弦波的话,还需要搭建一个信号处理电路

这里给了一个方波信号,左边频率高,越往右,频率越低

1:测频法:   给一个闸门时间,对上升沿计次(当然下降沿也可以,为了方便,我统一用上升沿),得到的上升沿次数,讲一下它的上升沿计数工作流程,计数器不断自增,每来一个上升沿,计数器就把计数的值锁存在CCR里,并且用主从模式设置计数复位,又从0开始计数,每计一个上升沿就是一个周期,一般闸门时间选一秒,一秒有多少个上升沿,频率就算出来了 

2:测周法,捕获信号的两个上升沿,然后测量一下这两个上升沿中间持续的时间就行了,实际上,我们没有一个精度无穷大的秒表来测量时间,那么我们就用一个已知标准频率Fc的记次时钟来驱动计数器,计数从一个上升沿开始,计数器从0一直到下一个上升沿结束,记一个标准频率的时间是Fc的倒数,就是1/Fc,记N个,就是N/Fc,时间是N/Fc,那么频率fx就是N/Fc的倒数,所以fx=Fc/N

那么这两个方法有什么区别呢,什么时候用测频,什么时候用测周呢

图上能看出来,一般信号频率高的时候,就可以用测频法频率低的就用测周法

那么多高算高,多低算低呢,就取一个中界频率,高于中界频率,用测周法,低于中界频率,用测频法,中界频率怎么算呢,中界频率就是误差相等的点,误差是由记次N产生的,那么如果有一个地方,也就是测频法和测周法的记次N相同,那就是中界频率了嘛,N相同那就好办了,联立测频和测周的公式,N相同,解出fx,就是根号下T分之Fc了

接下来,我们了解一下输入捕获的结构框图

首先从通有四个通道,对应不同的引脚,那ch1通道来举例,引脚进来的信号,经过滤波器,滤去毛刺信号,选择边沿检测,也就是上升沿或者下降沿,当然这个滤波器和边沿检测器有两块功能相同的模块,主要是因为,通道1和通道2可以交叉输入,通道1可以输出到通道2,通道2也可以输出到通道一,这样同一个信号就能同时测频率和占空比,然后经过分频器,再到捕获电路,每来一个触发信号,CNT就向CCR转运一次,这样就能测频率了,如果要测占空比的话,那么用一个引脚,选择两个通道,一个通道测上升沿,一个通道测下降沿,就能算占空比了

接下来讲讲主从触发模式,如何触发硬件自动化的操作,写代码能用到

 

主从触发模式,就是主模式,从模式,触发源选择这三个功能的简称 ,主模式可以将定时器内部的信号映射到TRGO引脚,用于触发别的外设,这部分叫主模式,从模式就是接收其他外设的一些信号,用于控制自身定时器的运行,简单来说,就是被别的信号控制,所以这部分叫从模式,触发源选择就是,选择从模式的触发源,也可以认为是从模式的一部分

工作流程就是,定时器主模式输出更新信号到TRGO,从模式选择接收信号源选择,执行从模式操作

最后,来过一下输入捕获的流程图

 首先配置时基单元,CNT计数器不断自增,计数器计数标准频率为,如果是内部时钟,那就是Fc=72M/PSC,接着引脚接收信号,滤波器滤掉杂波,经过边沿检测和极性选择,选择TI1FP1为上升沿触发,分频器可以根据自己的要求对接收到方波进行分频,然后每来一个上升沿信号,CNT就锁存到CCR1里,当然如果要复位CNT的话,还可以设置主从触发模式,触发源选择TI1FP1为触发源,从模式为RESET,这样计数器锁存一次,接着还触发了主从触发模式,CNT也复位,从0计数,这样就能根据计数的结果,算出接收到方波信号频率了。

如果还要对一个信号测量频率和占空比等,就可以对一个信号,经过两个通道,每个通道干自己分配的事情就行了,流程图大致是这样

这样,通道1的信号还能输入到通道2,通道1和上一张图的流程一样,计算频率,通道2的TI1FP2就选择下降沿触发,通道1为上升沿触发算频率,通道2为下降沿触发,算占空比

那么占空比具体怎么算的呢

 

 上升沿来的时候,CNT开始清零计数,当下降沿来的时候,CCR2捕获CNT的值,CCR2不设置主从触发模式,单纯就干锁存CNT到CCR2里面这件事,所以,CCR2里面就是高电平的计数值,接着,下一个上升沿来,CCR1才捕获CNT,CCR1设置了主从触发模式,自动清零CNT,这样CCR2就是高电平的计数值,CCR1就是整个周期的计数值,CCR2/CCR1不就是高电平的占空比了嘛。

当然补充一句关于通道的选择,ch1通道和ch2通道可以交叉输入哈,从结构图里可以看出,通道1可以输入到通道2,通道2可以输入到通道一,也可以通道1同时输入到通道1和通道2,通道2也可以同时输入到通道2和通道1,可以方便灵活切换哈

最后来简单过一下输入捕获的代码,接收引脚的选择有要求的哈,不是随便哪个引脚都能当输入捕获使用,具体可以看手册

 比如用的定时器2(TIM2)的CH1通道,就只能用PA0引脚

代码步骤 

1:RCC开启时钟,把GPIO和TIM的时钟打开

2:GPIO初始化,把GPIO配置成输入模式(一般是上拉或者浮空输入模式)

3:配置时基单元,让CNT计数器在内部时钟的驱动下自增运行

4:配置输入捕获单元,用结构体配置流程图里通道的参数

5:选择从模式的触发源

6:触发之后执行的操作

7:调用TIM_Cmd函数,开启定时器

开启时钟

 配置GPIO

选择内部时钟,配置时基单元

配置输入捕获单元 

 

触发源选择和从模式 

使能计数器

读取频率 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32定时器(输入捕获) 的相关文章

  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • 无法使用 OpenOCD 找到脚本文件

    我正在尝试按照本教程将 OpenOCD 与我的 ST 发现板一起使用 https japaric github io discovery README html https japaric github io discovery READM
  • 2.4G SOC收发芯片XL2412P,适用于无线键鼠,遥控器等多种场景

    XL2412P芯片是 款高性能低功耗的SOC集成无线收发芯片 集成MO核MCU 工作在2 400 2 483GHz世界通用ISM频段 该芯片集成了射频接收器 射频发射器 频率综合器 GFSK 调制器 GFSK解调器等功能模块 并且支持一对多
  • 普冉32位单片机 PY32C642,M0+内核,1.7 V ~ 5.5 V宽工作电压

    PY32C642 单片机采用高性能的 32 位 ARM Cortex M0 内核 宽电压工作范围 嵌入 24Kbytes Flash 和 3 Kbytes SRAM 存储器 最高工作频率 24 MHz 包含多种不同封装类型产品 工作温度范围
  • 毕设开题分享 单片机智能教室系统(智能照明+人数统计)

    1 简介 Hi 大家好 今天向大家介绍一个学长做的单片机项目 单片机智能教室系统 智能照明 人数统计 大家可用于 课程设计 或 毕业设计 项目分享 https gitee com feifei1122 simulation project
  • 世微 AP2402降压恒流驱动IC LED刹车灯方案 全亮 半亮 瀑闪

    AP2402 是一款 PWM 工作模式 高效 率 外围简单 内置功率管 适用于 5 100V 输入的高精度降压 LED 恒流驱动芯片 输 出功率可达 15W 电流 1 5A AP2402 可实现三段功能切换 通过 MODE1 2 3 切换三
  • 学习STM32正点原子好吗?

    今日话题 学习STM32正点原子好吗 正点原子的教程内容简单明了 代码也清晰直接 使初学者能够轻松理解其功能和使用方法 尤其对于需要快速完成大学作业等任务的大学生来说 可以直接借鉴并稍作修改 便可满足需求 正点原子提供的资料通俗易懂 适合用
  • 会stm32有机会进大公司吗?

    今日话题 会stm32有机会进大公司吗 我本科期间参与了飞思卡尔和电赛等比赛 使用过多种单片机 但渐渐发现单片机只是其中的一小部分 不要过分迷恋所谓的单片机基础和技巧 更值得深入研究的是C语言 如果你对此感兴趣 我愿意无偿分享一个资源包 其
  • 物联网项目分享 Stm32单片机的音乐播放器设计 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 5 部分核心代码 6 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉
  • Arm:objcopy 如何知道 elf 中的哪些部分要包含在二进制或 ihex 中?

    我正在开发一个项目 其中涉及解析arm elf 文件并从中提取部分 显然 elf 文件中有很多部分没有加载到闪存中 但我想知道 objcopy 到底如何知道要在二进制文件中包含哪些部分以直接闪存到闪存中 以arm elf文件的以下reade
  • 库函数点亮Led

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • 特殊寄存器

    特殊寄存器 文章目录 前言 一 背景 二 2 1 2 2 总结 前言 前期疑问 STM32特殊寄存器到底是什么 特殊寄存器怎么查看和调试代码 本文目标 记录和理解特殊寄存器 一 背景 最近在看ucosIII文章是 里面提到特殊寄存器 这就进
  • 核心耦合内存在 STM32F4xx 上可执行吗?

    尝试从 STM32F429s CCM 运行代码 但每当我命中 CCM 中的第一条指令时 我总是会遇到硬故障 并且 IBUSERR 标志被设置 该指令有效且一致 STM32F4xx 是否可能不允许从 CCM 执行 数据访问效果良好 alios
  • STM32 Nucleo 上的上升沿中断多次触发

    我正在使用 STM32 NUCLEO F401RE 微控制器板 我有一个扬声器 经过编程 当向上 向下推操纵杆时 可以按设定的量改变频率 我的问题是 有时 通常 当向上 向下推动操纵杆时 频率会增加 减少多次 这意味着 ISR 正在执行多次
  • 嵌入式 C++11 代码 — 我需要 volatile 吗?

    采用 Cortex M3 MCU STM32F1 的嵌入式设备 它具有嵌入式闪存 64K MCU固件可以在运行时重新编程闪存扇区 这是由闪存控制器 FMC 寄存器完成的 所以它不像a b那么简单 FMC 获取缓冲区指针并将数据刻录到某个闪存
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • STM32F0、ST-link v2、OpenOCD 0.9.0:打开失败

    我在用着发射台 http www ti com ww en launchpad about htmlgcc arm none eabi 4 9 2015q2 为 STM32F0 进行编译 现在我想使用该集合中的 arm none eabi
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • stm32l0: 执行MI命令失败。使用 vFlashErase 数据包擦除闪存时出错

    我正在使用 Nucleo STM32L031 和 AC6 STM32 工作台 eclipse 我编写应用程序并进入调试模式 一切正常 直到我在应用程序中添加另一个功能 我注意到当我删除 评论 新函数 软件可以再次进入调试模式 但是当我添加

随机推荐

  • Ubuntu20.04换为清华的镜像源

    安装过程 Ubuntu 的软件源配置文件是 etc apt sources list 在修改之前 先将系统自带的该文件做个备份 将该文件替换为清华源官网提供的内容 即可使用 TUNA 的软件源镜像 第一步 切换到root账户 sudo s
  • web前端(HTML+CSS)试题总结

    一 填空题 1 网页的后缀名通常为 xxx html 或 xxx htm 的页面 2 请写出在网页中设定表格边框的厚度的属性 border 设定表格单元格之间宽度属性 cellspacing 设定表格资料与单元格线的距离属性 cellpad
  • docker_run_application

    docker三种方式运行application 1 一次性运行 docker run ubuntu 14 04 bin echo Hello world 登录到container ubuntu14 04 运行命令 bin echo Hell
  • 六、HSV颜色空间应用实例——颜色分割提取与替换

    教程汇总 python基础入门系列 通过之前的章节 四 OpenCV颜色空间 HSV颜色模型 我们已经初步认识了HSV颜色空间的特性与优势 现在就来看两个典型的应用实例 颜色分割提取 与 颜色替换 颜色分割 通过HSV颜色空间的操作我们可以
  • visual studio 2019 调试驱动

    搭建驱动开发环境 搭建环境需要两台机器 本地机器用来代码开发 一台虚拟机用来测试和安装驱动 搭建驱动开发环境参考 visual studio 添加调试机器 驱动工程的属性 gt Driver Installer gt Deployment
  • 第三篇.WDF驱动之Helloworld

    借助Microsoft提供的kmdf框架 来理解一下驱动的一般流程 驱动的开发流程 1 驱动程序入口函数 DriverEntry 驱动程序的入口函数 类似于 main函数 程序的标准入口函数是DriverEntry 与WDM不同 WDF的D
  • Vue2.0安装Element-ui

    1 在项目终端输入 npm i element ui S 如果想知道是否安装成功 2 随后在main js里引入element组件 加载 element 组件库 import ElementUI from element ui 加载 ele
  • Linux入门级命令

    目录 1 开启终端 2 Linux命令格式 3 扩展 Linux下的命令补全 4 切换用户 5 uname命令 6 ls命令 用法一 用法二 用法三 7 pwd命令 8 cd命令 9 clear命令 10 reboot命令 11 shutd
  • MySQL表字段设置默认值

    环境 MySQL 5 1 命令行工具 问题 MySQL表字段设置默认值 解决 SQL CREATE TABLE test i a int NOT NULL DEFAULT 1 ts b timestamp NOT NULL DEFAULT
  • chrome启动参数设置

    chrome禁止本地浏览时加载本地其他文件 可以采用添加启动参数的方式来支持 添加参数为 allow file access from files 或者 disable web security Google Chrome 浏览器默认安装路
  • KDD‘21华为数值型特征做embedding,An Embedding Learning Framework for Numerical Features in CTR Prediction

    本文是针对数值型特征做embedding的方法 背景 图1 常用的数值型embedding方法可以分为以下三类 No Embedding 这类方法不做embedding 而是直接用原始的数值作为特征 或者在数值上面做一些改进 例如youtu
  • React 核心概念(3)

    React 核心概念 3 1 事件处理 React 元素的事件处理和 DOM 元素的很相似 但是有一点语法上的不同 引自 事件处理 React 事件的命名采用小驼峰式 camelCase 而不是纯小写 使用 JSX 语法时你需要传入一个函数
  • 写网关介绍比较好的文章地址

    https www jianshu com p 5bc4c0f58bf3
  • 自带内网穿透的文件同步工具Syncthing介绍

    文章目录 特征简介 下载与安装 简单介绍 后记 特征简介 Syncthing是一个文件同步工具 可以实现异地电脑间的文件同步 Syncthing自带内网穿透功能 文件同步过程将以P2P方式进行 Syncthing支持Windows MacO
  • QT中QDockWidget使用详解

    Qt系列文章目录 文章目录 Qt系列文章目录 前言 一 具体操作 1 QDockWidget控件配置函数 2 代码 1 头文件 2 实现文件 效果 遇到的问题 前言 QDockWidget提供了dock widget的概念 也称为工具面板或
  • shell脚本基础5——常用命令写作技巧

    文章目录 一 grep命令 二 sed命令 2 1 选项参数 2 2 常用命令 三 AWK命令 3 1 常用参数 3 2 常用示例 四 find与xargs 五 date命令 六 对话框 6 1 消息框 6 2 yes no对话框 6 3
  • 信息安全风险评估---矩阵法计算风险

    矩阵法计算风险 假设 有以下信息系统中资产面临威胁利用脆弱性的情况 共有两项重要财产 资产A1和资产A2 资产A1面临一个主要威胁T1 资产A2面临两个主要威胁T2 T3 威胁T1可以利用资产A1存在的两个脆弱性 脆弱性V1和V2 威胁T2
  • 小程序DOM如何转为图片并将图片分享给朋友?

    方案一 h5中转页 1 利用web端插件html2canvas将dom转成图片 h5端 入参请参考文档 http www dtmao cc ios 65361 html html2canvas refdom useCORS true sca
  • 可穿戴设备未来市场巨大

    可穿戴设备将冲击智能手机的存在 不可否认 可穿戴设备未来的市场非常之大 甚至极有可能冲击智能手机的存在 从功能角度讲 可穿戴设备有机会一步步替代智能手机 现阶段来讲 许多可穿戴设备只能算是手机的附庸产品 通讯 社交等功能以手机为基础 可穿戴
  • STM32定时器(输入捕获)

    上一章讲了输出比较的内容 输出比较就是定时器自增 同时和CCR比较 按照自己设置的比较要求 输出REF高低电平 这一章我们讲下面结构图输出比较左边部分 也就是输入捕获 首先 介绍一下输入捕获 IC input capture 输入捕获 输入