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

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

3天内不再提示

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

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

扫码添加小助手

加入工程师交流群

前言

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

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

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

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

下载

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

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

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

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基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。

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

    关注

    0

    文章

    85

    浏览量

    19124
  • 信号捕获
    +关注

    关注

    0

    文章

    6

    浏览量

    8860
  • STM32F0
    +关注

    关注

    0

    文章

    61

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    求助,关于LPC546XX CTIMER 配置问题求解

    0 或 1 MR 来计算溢出次数。 由于 MCR(匹配控制)、CCR(捕获控制)和 EMR(引脚输出)是单独的寄存器,因此我相信它们可以独立配置。 恩智浦的人员能否确认是否支持在
    发表于 04-20 07:38

    STM32F427xx/STM32F429xx微控制器:高性能与多功能的完美结合

    STM32F429IIT6.pdf 一、概述 STM32F427xxSTM32F429xx系列基于高性能的32位Arm® Cortex® - M4内核,运行频率最高可达180 M
    的头像 发表于 03-31 16:35 193次阅读

    STM32L072xx 超低功耗32位MCU,基于ArmR的Cortex-M0+规格书

    电子发烧友网站提供《STM32L072xx 超低功耗32位MCU,基于ArmR的Cortex-M0+规格书.pdf》资料免费下载
    发表于 03-20 15:58 0次下载

    基于STM32F103C8T6的智能超声波测距尺:从原理到代码的完整实现

    最近在捣鼓STM32的外设,决定做一个经典的超声波测距仪。市面上的教程大多只讲皮毛,这次我深入研究了定时器输入捕获的原理,配合中断处理,实现了比普通Delay函数更精准的测量。 这里将详细
    发表于 02-28 02:21

    国产MCU开发工具不输STM32Cube:教你玩转PY32F072高级定时器

    配置TIM1的时钟为8MHz 在Parameter中调整预分频和自动加载值,Frequency/Cycle元素会自动计算出PWM的频率和周期。加载值为7999,
    发表于 01-26 10:15

    LAT1202+TIM DMA burst 输出变频 PWM 波形应用笔记

    客户需要 MCU 输出一组变频的 PWM 波形来控制外围器件,并且不同频率脉冲的个数也不同。STM32U5 芯片拥有 TIM1/TIM8 高级定时器,还有通用定时器
    发表于 01-11 17:22 0次下载

    定时器输入捕获模式

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

    103rc rt-studio TIM4 CH2输出PWM不正常怎么解决?

    : RT-Thread Studio 输出PWM详细教程 配置TIM4的CH2、CH4均无法正常输出pwm,以下是配置过程 rtthrea
    发表于 09-16 08:20

    STM32F405RGT6 ADC2+TIM4触发+DMA(DMA2_Stream2_CH1)+DMA中断会死机,怎么解决?

    _Prescaler = F_Prescaler; //配置自动重装值为10000TIM_TimeBaseInitStructure.TIM_Period = F_ARR; //
    发表于 08-04 07:16

    重新配置SCB->VTOR = 0x08010000后,再次复位,程序异常的原因?

    ) : ORIGIN = 0x08010000,LENGTH = 960K/ 从第4扇区开始(0x08010000) 960K/ } system_stm32f4xx.c中如下更改: define
    发表于 07-22 06:56

    STM32F10xxx参考手册

    STM32F1XX数据手册中文版
    发表于 07-10 16:09 10次下载

    第二十二章 TIM——高级定时器

    本章介绍了W55MH32的高级定时器(TIM1和TIM8),其含时基单元等,具备输入捕获、输出比较、PWM生成等功能,还支持互补输出、死区插入等,适用于工业电机控制,也提及相关
    的头像 发表于 06-20 13:58 1869次阅读
    第二十二章 <b class='flag-5'>TIM</b>——高级定时器

    STM32F4标准外设库资料

    stm32f4xx.h,标准外设库
    发表于 06-08 09:49 5次下载

    STM32F40xxx和STM32f41xx flash编程手册

    PM0081_STM32F40xxx and STM32F41xxx单片机编程手册
    发表于 06-06 17:02 8次下载

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

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