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

定时器时钟来源可以从输入捕获引脚输入

外部时钟模式 和 输入捕获

核心结论:

  1. 外部时钟模式的输入引脚 ≠ 输入捕获功能的输入引脚(通常情况):

    • 外部时钟模式有专用的输入引脚 (ETR) 和可选的替代输入通道(如TI1, TI2)

    • 输入捕获功能有自己的专用输入通道引脚 (TIx, 如 TI1, TI2, TI3, TI4)

  2. 是的,输入捕获引脚可以被“配置”为外部时钟模式的时钟源:

    • 关键在于,当你把一个输入捕获引脚(如TI1或TI2)配置为外部时钟模式的时钟源时,该引脚在该定时器上就不再执行输入捕获功能了。它的角色发生了转变。

详细解释:

  1. 外部时钟模式 (External Clock Mode) - 目的:为定时器提供计数时钟源

    • 模式1 (ETR 引脚): 这是最常见的方式。定时器有一个专用的外部触发输入引脚 (ETR)。配置此模式后,定时器的计数器 (CNT) 会直接根据ETR引脚上的外部信号(经过预分频器和极性选择后)进行递增计数。这个ETR引脚是专门为外部时钟/触发设计的,它本身不是输入捕获通道。

    • 模式2 (TIx 引脚): 高级定时器通常支持将某个输入通道(通常是TI1或TI2) 配置为外部时钟源。这是通过配置从模式控制器 (SMS位) 和输入选择寄存器 (TIMx_TISEL或类似) 来实现的。

      • 当你选择这个模式(例如,选择TI1FP1作为触发源,并将从模式设为外部时钟模式1)时,TI1引脚上的信号(经过输入滤波器和边沿检测后产生的TI1FP1信号)就变成了定时器计数器的时钟源。

      • 此时,TI1引脚的功能不再是“输入捕获”,它被“重定向”或“复用”为外部时钟输入引脚。 定时器无法再用这个引脚来捕获信号边沿并记录捕获寄存器的值(CCRx),因为它现在驱动着计数器。

  2. 输入捕获 (Input Capture) - 目的:测量外部信号的脉宽或周期

    • 每个输入捕获通道(TI1, TI2, TI3, TI4)都有自己对应的GPIO引脚。

    • 配置为输入捕获模式后,当该引脚上发生指定的边沿(上升沿、下降沿或双边沿)时,定时器当前的计数器值 (CNT) 会被自动捕获到对应的捕获/比较寄存器 (CCRx) 中。

    • 这个功能的核心是“捕获”当前时刻的计数值,用于后续计算信号特征。它不直接影响计数器的计数时钟源。

关系总结:

  • 硬件引脚: ETR引脚、TI1引脚、TI2引脚等在物理上是不同的GPIO引脚。

  • 功能独立性: 外部时钟模式(为计数器提供时钟)和输入捕获(记录信号边沿发生的时刻)是定时器内部两个独立的功能模块。

  • 引脚复用/重定向:

    • ETR引脚只能用于外部触发/时钟输入(模式1),不能用于输入捕获。

    • TI1, TI2等引脚默认用于输入捕获功能(或PWM输出等)。

    • 但是,在高级定时器的“外部时钟模式2”下,你可以选择将特定的TIx引脚(如TI1或TI2)配置为计数器的外部时钟源。

    • 当TIx引脚被配置为外部时钟源时,它在该定时器上就失去了其作为输入捕获通道的功能。 它现在扮演的是“时钟输入”的角色。

  • 不能同时使用: 对于同一个定时器的同一个TIx引脚,你无法让它同时作为外部时钟源(驱动计数器)又作为输入捕获通道(在信号边沿捕获计数器值)。 这两个功能在硬件上是互斥地使用该引脚。

简单来说:

  • 专用时钟输入: 用ETR引脚(外部时钟模式1)。

  • 复用时钟输入: 可以把TI1或TI2引脚“借”过来当外部时钟输入用(外部时钟模式2),但代价是这个引脚不能再做输入捕获了。

  • 输入捕获: TIx引脚的本职工作是输入捕获(或输出比较等),除非你明确配置它去做外部时钟输入。

http://www.xdnf.cn/news/778519.html

相关文章:

  • HashMap 的底层原理
  • 小白的进阶之路系列之十二----人工智能从初步到精通pytorch综合运用的讲解第五部分
  • 网络安全问题及对策研究
  • Java面试八股--08-数据结构和算法篇
  • JavaWeb是什么?总结一下JavaWeb的体系
  • MQTTX连接阿里云的物联网配置
  • Linux 下 ChromeDriver 安装
  • 70道Hive高频题整理(附答案背诵版)
  • Express教程【006】:使用Express写接口
  • “草台班子”的成长路径分析
  • 基于InternLM的情感调节大师FunGPT
  • Cilium动手实验室: 精通之旅---1.Getting Started with Cilium
  • 深度学习学习率调度器指南:PyTorch 四大 scheduler 对决
  • # 将本地UI生成器从VLLM迁移到DeepSeek API的完整指南
  • iOS 应用如何防止源码与资源被轻易还原?多维度混淆策略与实战工具盘点(含 Ipa Guard)
  • 深入浅出:Oracle 数据库 SQL 执行计划查看详解(1)——基础概念与查看方式
  • 蛋白质结构预测软件openfold介绍
  • 【请关注】MySQL 中常见的加锁方式及各类锁常见问题及对应的解决方法
  • macos常见且应该避免被覆盖的系统环境变量(避免用 USERNAME 作为你的自定义变量名)
  • 数据结构:递归:自然数之和
  • MYSQL 高级 SQL 技巧
  • 虚拟线程与消息队列:Spring Boot 3.5 中异步架构的演进与选择
  • 从零打造AI面试系统全栈开发
  • 字节新出的MCP应用DeepSearch,有点意思。
  • 基于大模型的短暂性脑缺血发作(TIA)全流程预测与干预系统技术方案
  • forEach不能用return中断循环,还是会走循环外的逻辑
  • idea不识别lombok---实体类报没有getter方法
  • 【计算机网络】第七章 运输层
  • 阿里云无影云桌面深度测评
  • GLIDE论文阅读笔记与DDPM(Diffusion model)的原理推导