STM32标准库学习笔记-6.定时器-输入捕获

参考教程:【STM32入门教程-2023版 细致讲解 中文字幕】

定时器输入捕获

  • IC(Input Capture)输入捕获
  • 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数
  • 每个高级定时器和通用定时器都拥有4个输入捕获通道
  • 可配置为PWMI模式,同时测量频率和占空比
  • 可配合主从触发模式,实现硬件全自动测量
频率测量
  •         测频法:在闸门时间T内,对上升沿计次,得到N,则频率f_x=N / T
  •         测周法:两个上升沿内,以标准频率fc计次,得到N ,则频率f_x=f_c / N
  •         中界频率:测频法与测周法误差相等的频率点f_m=√f_c / T
输入捕获通道

主模式和从模式触发

输入捕获基本结构

PWMI基本结构

        由于只有TI1FP1TI2FP2连到了从模式控制器,所以PWM输入模式只能使用TIMx_CH1

/TIMx_CH2信号。

代码实例
#include "stm32f10x.h"                  // Device headervoid IC_Init(void)
{//使能TIM3系统时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//TIM3时基单元初始化,用于捕获TIM2产生的PWM波TIM_TimeBaseInitTypeDef TIM3_TimeBaseInitStruct;TIM3_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;TIM3_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;TIM3_TimeBaseInitStruct.TIM_Period = 65536 - 1; TIM3_TimeBaseInitStruct.TIM_Prescaler = 36 - 1;TIM3_TimeBaseInitStruct.TIM_RepetitionCounter = 0x00;TIM_TimeBaseInit(TIM3,&TIM3_TimeBaseInitStruct);TIM_InternalClockConfig(TIM3);//输入捕获初始化TIM_ICInitTypeDef TIM3_ICInitStructure;TIM3_ICInitStructure.TIM_Channel = TIM_Channel_1;TIM3_ICInitStructure.TIM_ICFilter = 0xF;TIM3_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;TIM3_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;TIM3_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;    //直连输入TIM_ICInit(TIM3,&TIM3_ICInitStructure);//根据TIM3_ICInitStructure配置为PWMI模式(也就是增加选择器的另一路,设置极性和非直连输入)TIM_PWMIConfig(TIM3,&TIM3_ICInitStructure);//设置输入触发源TIM_SelectInputTrigger(TIM3,TIM_TS_TI1FP1);//设置从模式TIM_SelectSlaveMode(TIM3,TIM_SlaveMode_Reset);TIM_Cmd(TIM3,ENABLE);
}//@param Freqc:fc频率表示TIM3计数器频率
uint32_t IC_GetFreq(uint32_t Freqc)
{return (uint32_t)(Freqc/TIM_GetCapture1(TIM3));
}//获取占空比,为百分比
uint8_t IC_GetDuty(void)
{return (uint8_t)(100*TIM_GetCapture2(TIM3)/TIM_GetCapture1(TIM3));
}

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

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

相关文章

8.14-LVS主从+nginx的haproxy+mysql的haproxy+读写分离

一、LVS-主从数据库 # nat # 添加规则 [rootDS ~]# ipvsadm -A -t 192.168.2.130:3306 -s rr [rootDS ~]# ipvsadm -a -t 192.168.2.130:3306 -r 192.168.2.40:3306 -m [rootDS ~]# ipvsadm -a -t 192.168.2.130:3306 -r 192.168.2.42:3310 -m [rootDS ~]# ipvsadm -Ln IP Vir…

计算机毕业设计选什么题目好? springboot 大学志愿填报系统

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

ffmpeg的基础命令

文章目录 ffmpeg/ffplay/ffprobe区别ffmpeg 的作用ffplay的作用ffprobe的作用 ffmpeg使用概述功能概述转码过程简单使用FFMPEG -i常用的 -i例子 ff***工具之间共享的选项ffmpeg主要选项ffmpeg提取音视频数据ffmpeg命令修改原有的视频格式ffmpeg命令裁剪和合并视频拼接视频的方式…

数据结构—— 初识二叉树

1.树概念及结构 1.1树的概念 树是由根和子树构成 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 1. 树有…

20240819 每日AI必读资讯

📚AI爆料人遭全网封禁!OpenAI等25个机构祭大招,一眼辨别AI机器人 - 最近半个月,全网被OpenAI的「AI爆料人」「草莓哥」iruletheworldmo愚弄。所有人没有等他预测的GPT-4o large模型,反被AI初创MultiOn创始人揭穿身份—…

Git安装包及怎么再windows上运行

第一步:下载git。 国内 Git for Windows. 国内镜像 感谢GitHub - waylau/git-for-win: Git for Windows. 国内直接从官网下载比较困难,需要翻墙。这里提供一个国内的下载站,方便网友下载 安装步骤: Git for Windows安装和基本…

【C语言可变参数函数的使用与原理分析】

文章目录 1 前言2 实例2.1实例程序2.2程序执行结果2.3 程序分析 3 补充4 总结 1 前言 在编程过程中,有时会遇到需要定义参数数量不固定的函数的情况。 C语言提供了一种灵活的解决方案:变参函数。这种函数能够根据实际调用时的需求,接受任意…

ansible相关模块

copy模块(重点) copy模块⽤于对⽂件的远程拷⻉操作(如把本地的⽂件拷⻉到远程 的机器上) https://docs.ansible.com/ansible/latest/modules/copy_module.htm l#copy-module 在master上准备⼀个⽂件,拷⻉此⽂件到group1的所有机器上 使⽤content参数直…

zabbix-配置监控远程主机

1.在被监控主机上配置zabbix-agent 1.获取zabbix官方源 rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm# 替换阿里源,这一步很重要 sed -i s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabb…

微服务架构设计中的常见的10种设计模式

微服务架构设计的概念 微服务架构(Microservices Architecture)是一种用于构建分布式系统的软件设计模式。它将大型应用程序拆分成一组小型、自治的服务,每个服务都运行在其独立的进程中,服务之间通过轻量级的通信机制&#xff08…

clickhouse集群+Zk优化-解决只读模式,主节点磁盘增长快

问题1:数据库进入只读模式 最近在项目中使用clickhouse的时候,遇到了一个批量插入后报错的问题。报错的内容是数据库进入了只读模式,导致数据写不进去。发现有大量的批量写入报错日志信息。(关键异常信息:DB::Exceptio…

高德地图SDK Android版开发 6 显示覆盖物

高德地图SDK Android版开发 6 显示覆盖物 前言地图类中覆盖物的接口覆盖物类Marker示例Polyline示例Polygon示例Arc示例Circle示例移除示例效果图 Marker的更多属性常用属性交互动画其它属性 折线的更多属性常用属性其它属性 多边形的更多属性常用属性其它属性 Arc的更多属性Ci…

[数据结构] RBTree 模拟实现RBTree

标题:[数据结构] RBTree && 模拟实现RBTree 水墨不写bug 目录 一、红黑树的概念 二、map和set的封装 三、红黑树的实现 1、红黑树节点的定义 2、红黑树的结构 3、红黑树的插入 1.名称 2.插入节点的颜色 红黑树的insert 实现 情况一:不…

QT翻金币小游戏(含音频图片文件资源)

目录 QT翻金币小游戏 音频图片资源文件获取 效果展示 图片 视频 实现代码 main.cpp mymainwindow.h mymainwindow.cpp startscene.h startscene.cpp selectscene.cpp playscene.h playscene.cpp mypushbutton.h mypushbutton.cpp dataconfig.h dataconfig.cpp QT…

Spring Boot: 2.7.x 至 2.7.18 及更旧的版本,漏洞说明

本文提供的修复指南将帮助开发者有效规避 CVE-2024-38808 和 CVE-2024-38809 的风险。如果你正在使用老版本的 Spring Boot,请尽快参考本文进行修复与升级。 此漏洞来源于spring官网:https://spring.io/blog/2024/08/14/spring-framework-releases-fixe…

8.17模拟赛题解

先考虑空间能不能把N个座位放好 最优的方式就是挨着摆放 那么一排能摆放QL/x的商个椅子 ,然后计算摆放完N个座位需要多少排,N/Q 向上取整 计算所需要的排总共占据多宽,讨论有没有超过W,然后讨论剩余空间还能放几条走廊 如果走廊数…

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署 什么是RAG: 我能把这个过程理解为Kimi.ai每次都能列出的一大堆网页参考资料吗?Kimi学了这些资料以后,根据这里面的信息综…

Leading SAFe领导大规模敏捷认证公开课

课程简介 SAFe – Scaled Agile Framework是目前全球最广泛使用的大规模敏捷框架,也是全球敏捷相关认证中增长最快、最受认可的规模化敏捷认证。全球已有超过120万名SAFe认证专业人士。据官方统计,获得SAFe认证的IT专业人士平均工资增长13,000美元&…

澎湃认证显实力,浪潮信息存储兼容新篇章

浪潮信息在存储技术兼容性领域取得新突破,其集中式存储HF/AS系列与长擎安全操作系统24强强联合,成功完成澎湃技术认证。此次合作不仅验证了双方产品的无缝对接能力,更体现了浪潮信息在推动全产业链共建共享方面的坚定决心。 浪潮信息澎湃技术…

python人工智能001:NumPy科学计算库说明与安装

1. NumPy说明 NumPy(Numerical Python)是Python的一个开源数值计算扩展库。它提供了一个强大的N维数组对象ndarray,以及用于对这些数组进行操作的函数。NumPy的数组和数组操作是Python数据分析、机器学习、科学计算等领域的基础。 NumPy的主…