STM32F0xx_TIM输入捕获(计算频率)配置详细过程

原创 2016年06月01日 21:59:42

前言

    关于STM32的定时器,可谓是功能强大,估计没有多少人研究完STM32定时器的所有功能(包括我也没有),只是使用常用的一些功能,后续我会推出关于STM32定时器的更多功能。

    STM32芯片多数为16位计数,但基本上都有1个或两个32位的定时器,可惜的是我们最常使用的F1系列芯片中没有32位的定时器,F030中也没有,具体请看数据手册。

    今天主要总结关于STM32F0系列输入捕获,捕获信号频率,即所谓逻辑分析仪检测数字频率的功能。

    今天使用32位的TIM2作为捕获的定时器,为什么是32位,原因很简单,就是为了捕获(采集)更宽频率的波形,今天提供的工程可以采集0Hz - 10MHz的波形(建议2MHz一下,串口打印需要时间)。而16位就不行,提醒使用F1的朋友要注意这一点。官方提供的例程也是16位,检测的范围同样有限。

 

本着免费分享的原则,如果你觉得分享内容对你有用,请关注微信公众号“EmbeddDeveloper”还有更多精彩内容等着你。

 

下载

    ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。

 

今天的软件工程下载地址(360云盘):

https://yunpan.cn/cSztEbetLczKY  访问密码

 

STM32F0xx的资料可以在我360云盘下载:

https://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37

 

今天工程测试效果(视频):

https://yunpan.cn/cSziVGGZbMagj  访问密码 5731

 

准备工作

    今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。今天将源代码添加在timer.c文件里面,就不需要新建文件了。

 

捕获原理

    看系统框图,今天使用分频的方式来采集波形,官方提供的例程是没有配置TimeBase参数,也没有分频,分频的好处在于不是非常实时的获取波形,这样有利于提供精度(可以说是计算平均值)。捕获外部8个脉冲,前后读取一下计数的值,这个值就是外部脉冲的差值,从而计算出频率。


 

 

配置过程详情

①RCC时钟


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

我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于忘记配置相应RCC时钟,让我找了很久的问题,最后才发现是RCC时钟没有配置。

注意:

外设时钟不要随便添加,比如:RCC_APB1外设不要配置在RCC_APB2时钟里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);这样能编译过,但是错误的

我每次都提醒RCC时钟,是因为很多人就是因为时钟而导致软件运行有问题,所以,提醒更多人要注意配置RCC.

 

②捕获引脚配置


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

重点注意:

引脚配置要和对应通道匹配才行(请看数据手册中的引脚说明)。

复用功能同样也是需要配置。

 

③TIM捕获配置


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

这里的分频值配置为一样,方便计算。

 

④捕获频率的计算


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

这个函数就是捕获中断函数,采集8个脉冲的前后中断一次,即读取一下计数值,通过计数值的差就可以算出频率了。

 

说明

STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。

今天的工程是基于工程“STM32F0xx_TIM基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。

 

 

最后

如果你喜欢我分享的内容,你又想了解更多相关内容,请关注文章开头的微信公众号,新内容持续更新中,后期将会有更多精彩内容出现。

 

阅读原文


版权声明:本文为博主strongerHuang原创文章,转载请标明:来自http://blog.csdn.net/ybhuangfugui

相关文章推荐

STM32 输入捕获的脉冲宽度及频率计算

输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。以下是对脉冲宽度及频率的计算。 1、脉冲宽度 如下图所示,采集该高电平脉冲...

STM32频率计算——捕获方式

STM32采用定时器捕获的方法测低频信号很准确,我测高频100K-120K就误差太大了,大概200Hz,这儿的误差是个范围,不是某个值。有的人说两个定时器一个定时,一个计数,这样太浪费资源了吧。我项目...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

STM32 TIM测 输入信号的 频率

说 不进中断 等等基本功能没实现ok的,查看: STM32 外设配置关键步骤 务必仔细瞅瞅…TIM输入捕获简介TIM输入捕获两种模式: 1. PWM输入模式 2. 输入捕获模式调试记录PW...

STM32F0xx_TIM输出PWM配置详细过程

前言 前面我说过STM32的定时器功能很强大,今天就来总结一下它的另外一个“强大”功能:TIM的比较输出功能,输出可调PWM波形。直接调用函数接口“TIM2_CH1_PWM(uint32_t Freq...

STM32学习笔记之定时器输入捕获实验

转载于 http://blog.csdn.net/u010661782/article/details/50301729,大侠的原创几篇的STM32转载过来集中供后来者学习。 实...

STM32输入捕获

1,输入模式和比较模式的理解 捕获模式的原理是选定的输入引脚发生选定的脉冲触发沿(上升沿或下降沿)时候,则该时刻定时器的计数值TIMx_CNT将被保存, 同时产生中断(TIMx_CNT的值不会与任...

cortex_m3_stm32嵌入式学习笔记(十):输入捕捉实验(定时器的输入捕捉)

输入捕获模式可以用来测量脉冲宽度或者测量频率。 STM32 的定时器,除了 TIM6 和 TIM7,其他定时器都有输入捕获功能。 STM32 的输入捕获,简单的说就是通过检测 TIMx_CHx 上的边...

小熊STM32学习总结:STM32的定时器--输入捕捉模式

STM32的定时器--输入捕捉模式 调试STM32的定时器好几天了,也算是对STM32的定时器有了点清楚的认识了。我需要测量4路信号的频率然后通过DMA将信号的频率传输到存储器区...

STM32学习笔记之定时器输入捕获实验

转载于 http://blog.csdn.net/u010661782/article/details/50301729,大侠的原创几篇的STM32转载过来集中供后来者学习。 实...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STM32F0xx_TIM输入捕获(计算频率)配置详细过程
举报原因:
原因补充:

(最多只允许输入30个字)