历史上的今天
返回首页

历史上的今天

今天是:2025年01月17日(星期五)

正在发生

2021年01月17日 | STM32F0xx_TIM输入捕获(计算频率)配置详细过程

2021-01-17 来源:eefocus

前言

    关于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  访问密码

 

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


推荐阅读

史海拾趣

DAICO公司的发展小趣事

DAICO公司成立于XXXX年,最初是一家位于加利福尼亚的小型私营公司。在公司成立的初期,DAICO专注于研发和生产中频/射频和微波控制产品,以及放大器。这些产品主要用于国防电子和航空航天领域,为DAICO在电子行业中打下了坚实的基础。

Ememory Technology Inc公司的发展小趣事

除了自主研发外,eMemory还积极寻求与外部合作伙伴的联合研发。在2016年,eMemory与马来西亚的半导体晶圆代工厂Silterra联合宣布,基于Silterra 0.18微米CMOS制程技术的一次性可编程(OTP)存储器已经通过了验证。这一合作不仅证明了eMemory技术的先进性和可靠性,还为双方带来了新的市场机遇。

FOSLINK公司的发展小趣事

为了进一步扩大市场份额,FOSLINK公司积极实施全球化战略。公司先后在多个国家和地区设立了研发中心、生产基地和销售网络,形成了覆盖全球的业务布局。通过全球化的资源配置和市场拓展,FOSLINK成功打入了多个国际知名企业的供应链体系,为其提供了优质的产品和服务。这一系列的全球化举措,不仅提升了FOSLINK的品牌影响力,还为其未来的发展奠定了坚实的基础。

CyOptics Inc公司的发展小趣事

2013年4月,Avago宣布以约4亿美元的价格收购CyOptics Inc。这一收购标志着CyOptics的技术实力和市场地位得到了业界的进一步认可。Avago看中了CyOptics在InP光学芯片及组件领域的领先地位,希望借此增强其在新兴40G和100G企业及数据中心应用市场中的竞争力。收购完成后,CyOptics成为了Avago旗下光器件品牌,继续为市场提供高质量的光学产品。

Cornell Dubilier公司的发展小趣事

Cornell Dubilier公司的历史可以追溯到1909年,当时公司创始人William Dubilier凭借其开创性的云母电容器技术,为无线电广播通信带来了革命性的改变。这项技术的突破,使得Cornell Dubilier公司在早期电子行业中崭露头角。随后的几十年里,公司逐渐扩大生产规模,增加产品线,并开始涉足其他电子元件和组件的制造。

GardTec Inc公司的发展小趣事

背景:在电子产品行业,产品品质和安全合规性至关重要。GardTec深知这一点,始终将产品品质放在首位。

发展:公司建立了严格的质量控制体系,确保每一件产品都符合最高的品质标准。同时,GardTec还积极遵循国际安全标准和法规要求,如REACH/RoHS等,确保产品的合规性。

影响:高品质的产品和严格的合规性要求,使得GardTec在电子行业中赢得了客户的信赖和好评,进一步提升了公司的品牌形象和市场竞争力。

问答坊 | AI 解惑

2005年全国电子大赛作品文集含源码

本帖最后由 paulhyde 于 2014-9-15 09:08 编辑 2005年全国电子大赛作品文集含源码,(凌阳单片机)希望对大家有帮助  …

查看全部问答>

跪求单片机控制无线模块的程序

本帖最后由 paulhyde 于 2014-9-15 09:43 编辑 rt  …

查看全部问答>

3D电视国标制定完成或试水亚运会

本帖最后由 jameswangsynnex 于 2015-3-3 19:56 编辑 中国拥有完整知识产权的3D电视系统已经制定完成。昨日(7月21日),《每日经济新闻》从数字音视频解码技术标准工作组 (以下简称“AVS工作组”)获悉,最新版本的标准已经于六月底完成定稿,今日将 ...…

查看全部问答>

关于GPRS模块用LM317做稳压电源的问题

想搭建一个GPRS开发平台电源部分用LM317实现可是不管怎么调都不能将电源适配器的18V电压降到4V。电阻调到极限也只能在7V和12V之间。具体硬件是这样做的:LM317 1脚接3362 103T(最大阻值位10K)中间的那个脚;3362另一两个脚一个接地一个接输出也就 ...…

查看全部问答>

IIC地址问题

我们公司的一个项目,W78E52往W78E58传送数据, W78E52用的是P3^2、P3^3发送,W78E58用P2^0、P2^1来接收; 想问下是通过什么传送的呢,IIC吗?那怎么知道这2个芯片的地址呢? 还是其它传送? 请高手指教,帮帮忙,谢谢! …

查看全部问答>

USB插上后,设备管理器中显示unknow device

我的USB插上后,电脑提示无法识别的USB设备,是怎么回事啊?各位高手请指点一下。网上大概查了一下出现这种提示的原因:一是USB连接线供电不足,二是驱动软件的问题。我还没检验过。还会不会有其他的原因啦。…

查看全部问答>

STM32 107 CAN过滤器和掩码 设置函数

芯片资料没看到如何设置过滤器ID和掩码,结果弄了好久才搞清楚,原来固件库的接口还需要自己加工一下才行。 CP_VOID CanSetFilter(CAN_NUM_TypeDef byDevNo,CP_BYTE byFilterNumber,CP_DWORD dwId,CP_DWORD dwMask,CP_BYTE bIsStdId) {   & ...…

查看全部问答>

求助,有谁玩过ht1621.我的一点反应都没有。

求助,有谁玩过ht1621.我的一点反应都没有。哪位大神用过,给个电路图参照下,有程序也给小弟参考下。简单说一下注意事项。谢谢啦…

查看全部问答>

国外数字系统设计经典教材--Verilog嵌入式数字系统设计教程

Verilog嵌入式数字系统设计教程 本书特别强调在数字系统设计时,除了考虑逻辑设计外,还必须考虑用现实世界的工程方法来实现嵌入式系统的设计存在的许多约束条件和制约因素,诸如电路面积、电路的互连、接口的需求、功耗和速度性能等,重点讲解 ...…

查看全部问答>

求助:ZigBeeCC2530传感器组网采集终端串口接收丢包

如题,我用两块开发板(一个作为协调器,一个作为终端节点)组网采集位移计信号,可是终端节点和位移计通过485进行通信时丢包严重,一直不知道问题出在哪里。现把我在协议中添加的代码附上,求大神指点,感激不尽! 终端初始化代码: void Generi ...…

查看全部问答>