0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32F4_TIM输入波形捕获 (脉冲频率)

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-04-07 10:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Ⅰ、概述

本文在前面文章“STM32基本的计数原理”的基础上进行拓展,讲述关于“定时器输入捕获”的功能,和上一篇文章“定时器比较输出”区别还是挺大的。在引脚上刚好相反:一个输入、一个输出。

本文只使用一个TIM5通道3(也可其他通道)捕获输入脉冲的频率,通过捕获两次输入脉冲的间隔时间来计算脉冲波形的频率。间隔一定时间读取频率并通过串口打印出来。

当然也可通过两路通道捕获脉冲信号的占空比,计划后期整理。

笔者通过信号发生器产生信号,上位机串口助手显示捕获的脉冲频率。(没有信号发生器的朋友可以结合上一篇文章PWM输出做信号源:在同一块板子上也可以使用不同定时器,将输出引脚接在输入引脚)

先看一下实例的实验现象:

关于本文的更多详情请往下看。

Ⅱ、实例工程下载

笔者针对于初学者提供的例程都是去掉了许多不必要的功能,精简了官方的代码,对初学者一看就明白,以简单明了的工程供大家学习。

笔者提供的实例工程都是在板子上经过多次测试并没有问题才上传至360云盘,欢迎下载测试、参照学习。

提供下载的软件工程是STM32F417的,但F4其他型号也适用(适用F4其他型号:关注微信,回复“修改型号”)。

STM32F4_TIM输入波形捕获(脉冲频率)实例:

https://yunpan.cn/cB6XrSi6rK3TP 访问密码 7eed

STM32F4资料:

https://yunpan.cn/cR2pxqF5x2d9c 访问密码 53e7

Ⅲ、原理描述

笔者将TIM分为三大块:时基部分、比较输出和输入捕获,请看下面截图“通用TIM框图”。

前面的文章已经将“时基部分”的一些基础知识讲述过了,“时基部分”的功能是比较有用的,它除了可以用来延时(定时)之外,它还可以拿来触发其他一些功能,如:触发DA转换、AD采集等。

上一篇文章讲述的就是图中比较输出部分,比较输出部分功能相对比较简单。

该文主要讲述“输入捕获”部分,这部分输入的通道1与2、通道3与4可以相互协作。该文只使用了TIM5的通道3,捕获输入信号频率。

通用TIM框图:


上面两图截取“STM32F4x5、x7参考手册”建议下载手册参看。

Ⅳ、源代码分析

笔者以F4标准外设库(同时也建议初学者使用官方的标准外设库)为基础建立的工程,主要以库的方式来讲述。

1.RCC时钟


该函数位于bsp.c文件下面;

本文提供的例程也可以使用TIM2(只要将例程源代码中使用到的TIM5改为TIM2,以及引脚改正过来就行)。

重点注意:

A.外设RCC时钟的配置要在其外设初始化的前面;

B.匹配对应时钟。

比如:RCC_APB2外设不要配置在RCC_APB1时钟里面

【如:RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);这样能编译通过,但这是错误的代码】

2.TIM输入捕获引脚配置


该函数位于timer.c文件下面;

注意2点:

A.引脚与通道对应:这个需要参看“数据手册”,该文TIM5通道3对应的引脚就是PA2.

B.复用配置:GPIO_PinAFConfig(GPIOA,GPIO_PinSource2, GPIO_AF_TIM5);

这个地方对于F1转F0、F4等的朋友需要注意,更加芯片系列及库的不同,他们之间存在一定的差异。

3.TIM输入捕获配置


该函数位于timer.c文件下面;

“时基部分”是在前面两篇文章讲述过的,这里主要对“输入捕获”部分理解,主要5个参数:

捕获通道:就是我们捕获的通道;

捕获极性:就是我们捕获脉冲的高还是低电平;

捕获选择:是直接捕获该通道,还是上面说的1,2通道协助捕获;

捕获分频:对捕获的脉冲分频;

捕获滤波:过滤掉波形;

4.NVIC配置


该函数位于bsp.c文件下面;

这里不用多说,只是提醒大家不要忘记配置这里。

5.计算捕获波形频率原理


该函数位于stm32f4xx_it.c文件下面;

该函数是中断函数,也是计算频率重要的函数;

A.两次捕获值

捕获配置中,捕获的极性是高电平,这里就是在“上升沿”中断(捕获),如果配置为“下降沿”,则是在信号的下降沿中断。

B.计算两次捕获差值

这里常人理解都是:capture = (capture_value2- capture_value1);

但是,需要考虑另外两种情况,就是计数器在计满和相等时候。

C.计算频率

这里可以理解为:1秒钟计了多少个数。

但是需要注意的是截图中“/2”,对系统时钟除2,原因在于RCC给TIM提供的时钟就是除了2的,所以,这个地方需要/2.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Tim
    Tim
    +关注

    关注

    0

    文章

    84

    浏览量

    18887
  • 脉冲频率
    +关注

    关注

    0

    文章

    12

    浏览量

    8140
  • STM32F4
    +关注

    关注

    3

    文章

    204

    浏览量

    29817
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    定时器输入捕获模式

    AT32F4xx定时器输入捕获模式 支持型号: AT32F 系列 主要使用外设: TIMER、 USART 获取示例 1 快速使用方法 1.1 硬件资源 AT-START-
    发表于 09-22 09:58

    HRTIM可以通过TIM1触发一个50ns到100ns的短脉冲

    需求是想借助HRTIM的高精度定时器产生100ns的高质量脉冲,但是单纯用HRTIM频率做不到那么低,想用其他定时器比如TIM1级联触发,是否可以实现。我是新手小白,按照思路设置stm32
    发表于 09-01 16:53

    示波器波形捕获率的定义和作用

    波形捕获率(Waveform Capture Rate)是数字示波器的关键指标之一,指单位时间内示波器能够捕获并显示波形的次数,通常以“次/秒”或“帧/秒”为单位。其本质是衡量示波器在
    的头像 发表于 08-04 15:20 1106次阅读

    普源DHO5104波形捕获率对偶发故障诊断的影响

    一、偶发故障诊断的挑战与波形捕获率的核心价值 偶发故障(Intermittent Fault)具有随机性强、持续时间短、复现概率低等特点,传统示波器常因波形捕获速率不足而难以捕捉到关键
    的头像 发表于 06-19 15:14 444次阅读
    普源DHO5104<b class='flag-5'>波形</b><b class='flag-5'>捕获</b>率对偶发故障诊断的影响

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册

    电子发烧友网站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4编程手册.pdf》资料
    发表于 06-06 17:06 9次下载

    使用STM32捕获PWM时同时捕获2个通道时会出现捕获频率值不准确,是什么原因导致的?

    在使用STM32F103芯片的2个定时器捕获2路PWM波时,当2路信号同时输入时,会出现捕获频率不准确,但是分开一路一路的
    发表于 05-14 06:24

    使用STM32捕获PWM时同时捕获2个通道时会出现捕获频率值不准确是什么原因导致的?

    在使用STM32F103芯片的2个定时器捕获2路PWM波时,当2路信号同时输入时,会出现捕获频率不准确,但是分开一路一路的
    发表于 04-27 08:39

    使用STM32捕获PWM时同时捕获2个通道时会出现捕获频率值不准确的问题,是什么原因导致的?

    在使用STM32F103芯片的2个定时器捕获2路PWM波时,当2路信号同时输入时,会出现捕获频率不准确,但是分开一路一路的
    发表于 04-25 08:29

    使用STM32捕获PWM时同时捕获2个通道时会出现捕获频率值不准,为什么?

    在使用STM32F103芯片的2个定时器捕获2路PWM波时,当2路信号同时输入时,会出现捕获频率不准确,但是分开一路一路的
    发表于 04-22 10:43

    泰克MDO3052示波器波形捕获率评测

    泰克MDO3052作为中端混合域示波器的代表型号,其波形捕获率性能在同类产品中处于领先地位。本文将从技术原理、实测数据、应用场景及局限性等多个维度,结合工程实践案例,全面解析MDO3052的波形
    的头像 发表于 04-02 11:49 726次阅读
    泰克MDO3052示波器<b class='flag-5'>波形</b><b class='flag-5'>捕获</b>率评测

    求助大佬我使用STM32F030F4P6 的PA3引脚输出PWM波形

    #include \"main.h\" #include \"stm32f0xx_gpio.h\" #include \"stm32f0xx_tim
    发表于 03-20 23:13

    TIM2输入捕获,DMA开启中断传输输入捕获数据,程序跑的过程中,DMA一直中断,TIM6只触发一次中断,怎么解决?

    TIM2捕获输入的数据,并且通过DMA存储,在开启DMA中断同时,TIM6中断也开启(用于计时)。但是程序跑的过程中,DMA一直中断,TIM
    发表于 03-14 06:39

    STM32H723使用DMA方式实现定时器输入捕获只能执行一次吗?

    目的:我们希望在 STM32H723 平台上以 DMA 模式实现定时器输入捕获,而不中断当前问题:使用 Cube MX 配置相关参数,只使用 TIM4 的 CH2 作为
    发表于 03-12 08:21

    stm32输入捕获模式下,为什么IC1F=0000对应TIM_ICFilter=0x00?

    为什么IC1F=0000对应TIM_ICFilter=0x00?如果IC1F=1000,那么TIM_ICFilter是多少?它们之间的对应关系是什么?
    发表于 03-11 07:35

    STM32G474利用高精度HRTIM怎么捕获外部波形计算波形频率

    STM32G474 利用高精度HRTIM怎么捕获外部波形计算波形频率,想用STM32Cube配置
    发表于 03-10 06:29