当前位置: 首页 > news >正文

嵌入式学习日志————TIM输入捕获

前言

本篇文章主要记录TIM输入捕获的理论知识。如有问题,望指正!

正文

1.TIM输入捕获简介

  • IC(Input Capture)输入捕获

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

  • 每个高级定时器和通用定时器都拥有4个输入捕获通道

  • 可配置为PWMI模式,同时测量频率和占空比

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

2.频率测量

(1)测频法:在闸门时间T内,对上升沿计次,得到N,则频率f_x=N / T

  • 适用于高频波

  • 测量结果更新慢一点

  • 数值相对稳定

(2)测周法:两个上升沿内,以标准频率fc计次,得到N ,则频率f_x=f_c / N

  • 适用于低频波

  • 测量结果更新快

  • 数据跳变也快

(3)中界频率:测频法与测周法误差相等的频率点f_m=√f_c / T

  • 当待测信号频率<中介频率时:测周法误差更小

  • 当待测信号频率>中介频率时:测频法误差更小

3.捕获/比较通道

4.主从触发模式

对于通道三和通道四,只能开启捕获中断,手动清零——频繁中断、比较消耗软件资源

5.输入捕获基本结构

6.PWMI基本结构

同时测量占空比和频率

7.库函数

1)初始化输入捕获单元的函数1——一次只能配置一个通道(四个通道共用一个函数)
void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
2)初始化输入捕获单元的函数2——可以快速配置两个通道
void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
3)给输入捕获结构体赋一个初始值
void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct);
4)选择输入触发源TRGI
void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource);
5)选择输出触发源TRGO
void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource);
6)选择从模式
void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode);
7)分别单独配置四个通道的分频器
void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
8)分别读取四个通道的CCR

输入捕获下,CCR是只读的

void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);

还会持续更新哒~

http://www.lryc.cn/news/607633.html

相关文章:

  • EasyGBS的两种录像回看
  • 抢占先机,PostgreSQL 中级专家认证的职业跃迁
  • 学习:入门uniapp Vue3组合式API版本(17)
  • Linux文件系统:从内核到缓冲区的奥秘
  • 如何创建一个飞书应用获取自己的飞书AppID和AppSecret?
  • 力扣面试150题--数字范围按位与
  • QPS 与 TPS 的详细解释及核心区别
  • gdrcopy 原理、安装与示例
  • 国内短剧CPS系统开发:技术架构与商业化实践
  • 将 YOLOv11 的 .pt 模型转换为 YOLOv8 格式需要特定的处理流程 机器学习 计算机视觉cv
  • 【数据分享】中国27省乡镇(街道)级人口密度数据集(2000年)
  • 【Open3D】基础操作之三维变换
  • 【数据分享】南海综合波浪数据(1945-2018 年)(获取方式看文末)
  • Servlet作用域,监听器,JSP九大内置对象
  • python基础语法4,函数(简单易上手的python语法教学)课后习题
  • WooCommerce 与 ERP 系统集成解决方案
  • ai项目多智能体
  • 告别软件残留!IObit Uninstaller Pro 让电脑彻底干净!
  • sqli-labs:Less-17关卡详细解析
  • 12.代理模式:Java世界的“中间商“智慧
  • VSCode Python 与 C++ 联合调试配置指南
  • Ⅹ—6.计算机二级综合题23---26套
  • 从内部保护你的网络
  • AIGC(生成式AI)试用 35 -- 用AI解析句子结构
  • 8.1IO进程线程——文件IO函数
  • 60 GHz DreamHAT+ 雷达已被正式批准为“Powered by Raspberry Pi”产品
  • Ubuntu 24.04.2 LTS 安装mysql8.0.36保姆级教程(从安装到远程连接)
  • Elixir 协议与行为
  • 深度揭秘端口映射:原理、场景、路由映射故障,与内网IP端口映射外网工具的选择
  • LOVON——面向足式Open-Vocabulary的物体导航:LLM做任务分解、YOLO11做目标检测,最后L2MM将指令和视觉映射为动作(且解决动态模糊)