使用STM32定时器输入捕获的一些记录

news/2024/12/20 8:34:24/文章来源:https://www.cnblogs.com/zero-000/p/18611461

(最近在学习六步换相驱动直流无刷电机,记录一下其中陌生的定时器功能)

英文标识含义

  • TIx:通道CHx的外部输入信号;

霍尔传感器接口

霍尔传感器接口大概功能逻辑:

  1. 将CH1~3的输入连接到异或器,输出TI1,实现同时对三个信号的边沿检测;
  2. TI1经过滤波、边沿检测 -> TI1F_ED信号 -> TRC;
  3. TRC被映射到IC1,使之触发输入捕获;

输入捕获一般都会开启从模式RESET实现硬件的计数器清零,这里在TRC映射为输入捕获信号的同时,也作为从模式RESET的触发信号。(但是二者不会相互冲突,在IC触发想要获取周期量之前,因为最先触发从模式而导致计数器清零?可能的原因是从模式有一定的延迟……)

PWM输入模式

程序需要对主控MCU(外部MCU)输入的PWM作周期、占空比等数据的解析,此时可配置输入捕获为PWM输入模式,比如将IC1、IC2映射到一个TI输入信号,使PWM信号通过一个输入给到两个通道:

选择TIMx CCR1的有效输入:置TIMx CCMR1寄存器的CC1S=01(选择TI1)
选择TIMx_CCR2的有效输入:置TIMx_CCMR1寄存器的CC2S=10(选择T1)

对应到代码,即对通过对两个通道分别配置TIM_ICSelection_DirectTITIM_ICSelection_IndirectTI

/** @defgroup TIM_Input_Capture_Selection TIM Input Capture Selection* @{*/
#define TIM_ICSELECTION_DIRECTTI           TIM_CCMR1_CC1S_0                     /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to IC1, IC2, IC3 or IC4, respectively */
#define TIM_ICSELECTION_INDIRECTTI         TIM_CCMR1_CC1S_1                     /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to IC2, IC1, IC4 or IC3, respectively */
#define TIM_ICSELECTION_TRC                TIM_CCMR1_CC1S                       /*!< TIM Input 1, 2, 3 or 4 is selected to be connected to TRC */
/*** @}*/

配置后的效果是:

image

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

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

相关文章

AI应用实战课学习总结(2)hello sk-learn

本文快速搭建了Python机器学习的开发环境,并通过一个简单的降维示例学习了scikit-learn的基本用法,完成了一个hello world程序。大家好,我是Edison。 最近入坑黄佳老师的《AI应用实战课》,记录下我的学习之旅,也算是总结回顾。 今天是我们的第2站,了解下scikit-learn框架…

好消息,在 Visual Studio 中可以免费使用 GitHub Copilot 了!

前言 今天大姚给大家分享一个好消息,GitHub Copilot 可以免费使用了!在此之前若开发者要使用 GitHub Copilot 需要付费订阅,每月订阅费用起步价为 10 美元,而经过验证的学生、教师和开源项目维护者则可以申请免费使用。今天咱们一起来看看在 Visual Studio 使用 GitHub Cop…

读图数据库实战笔记08遍历与子图

遍历与子图1. 使用熟路构建遍历 1.1. 为了避免把开发遍历和构建应用程序混淆1.1.1. 把遍历的编写和测试与应用程序的开发拆分成了两个独立的操作1.1.2. 在Java代码之外独立开发遍历,然后把它们加入应用程序中1.1.3. 现实情况是,大多数开发人员会同时完成两者,不管使用的是哪…

使用css实现圆形的头像的效果(注:要考虑正方形、长方形情况)

在前端开发中,我们经常需要将用户的头像显示为圆形。这可以通过CSS的 border-radius 属性来实现,该属性允许你设置元素的圆角。当 border-radius 设置为 50% 时,无论图片是正方形还是长方形,都会得到一个圆形的效果。但需要注意,长方形图片被裁剪为圆形时,会显示为椭圆形…

任意尺度图像超分辨率的基准技术分析

任意尺度图像超分辨率的基准技术分析 在计算机视觉领域,超分辨率(SR)一直是一个突出的研究领域。它的目的是从低分辨率(LR)图像重建高分辨率(HR)图像。最近,主要基于学习图像的连续表示的任意尺度图像SR取得了重大进展。 这些方法通常需要在特定范围内(即1.0-4.0)使用…

用于端到端场景图生成的密集关系变换器

用于端到端场景图生成的密集关系变换器 场景图生成旨在捕捉图像中对象之间的详细空间和语义关系,由于标签不完整、长尾关系类别和关系语义重叠,这具有挑战性。现有的基于Transformer的方法要么对对象和谓词采用不同的查询,要么对关系三元组采用整体查询,因此学习低频关系的…

新书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》

由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该书强力解析AI芯片的核心技术开发,内容翔实、知识点新颖、实践性很强、图文并茂。 由清华大学出版社资深编辑赵佳霓老师…

vue3/Nuxt中使用Toast

前言 实在是懒得手写一个toast,于是找了一下。 过程 https://github.com/Maronato/vue-toastification/tree/next vue-toastification这个库很有名,默认是vue2的,如果需要使用vue3,需要在安装时,指定next的tag,比如 pnpm i vue-toastification@next但是这个库的最新版也已…

什么是状态管理,有哪些实现?

概念 “状态管理”是指在应用程序中有效地组织、更新和共享数据的方式。比起数据库和本地之类的持久层,有时我们需要存储一些应用运行过程中的临时数据,其中大部分可能都不会存入数据库。因此,状态这个词还是挺贴切的。比较熟悉的是vue中Pinia提供的状态管理,他是全局可访问…

[计算机网络/Linux] 基于CENTOS7自建DNS服务

序最初的诉求:自建DNS,篡改公开网站的url为自建web服务的url。在使用浏览器进行网上冲浪的时候,我们只需要输入网址即可访问,但是在网络中,网址并不是一个有效的东西,真正起作用的是网址所对应的IP地址,但是IP地址是一堆没有规律的数字,难以记忆、使用,所以就有了DNS服…

[计算机网络] 基于CENTOS7自建DNS服务

序最初的诉求:自建DNS,篡改公开网站的url为自建web服务的url。在使用浏览器进行网上冲浪的时候,我们只需要输入网址即可访问,但是在网络中,网址并不是一个有效的东西,真正起作用的是网址所对应的IP地址,但是IP地址是一堆没有规律的数字,难以记忆、使用,所以就有了DNS服…

systemd[1]: home.mount: Directory /home to mount over is not empty, mounting anyway.

日志显示这些内容说明可能是 fstab 服务自动挂载之前 /home 不为空systemd[1]: home.mount: Directory /home to mount over is not empty, mounting anyway. ░░ Subject: 挂载点不为空 ░░ Defined-By: systemd ░░ Support: http://www.ubuntu.com/support ░░ ░░ 目…