历史上的今天
返回首页

历史上的今天

今天是:2025年01月04日(星期六)

2019年01月04日 | STM32——定时器TIME模块之输入捕获

2019-01-04 来源:eefocus

STM32的定时器模块有很强大的功能,除了普通的定时功能之外还可以进行输入捕获和输出比较(PWM),PWM已在别的文章中介绍过,现在介绍一下输入捕获。


在这里先说本人在测试时想到的两个疑问:


疑问1:STM32的同一个定时器是否能同时进行输入捕获和输出比较(PWM)?

疑问2:假设疑问1的答案是可以,那输入捕获的范围是不是受限制?


功能实现:


1、既然是输入捕获,肯定需要相关引脚对信号进行检测,所以需要查找开发手册和数据手册来确定是哪几个引脚,要用哪几个引脚,然后给予合适的配置(图1)。



2、要进行输入捕获实验,首先需要配置某个定时器的时基功能,这样我们才能根据这个时基计算我们的捕获信息;其次就是要配置输入(通道、边沿设置、映射、分频是几次时间、滤波是单次事件的采样次数);还要配置中断优先级,同时启动相关中断(图2);



3、为了解答前面的疑问,我们在同一个定时器里添加PWM输出,配置方式可以参考手册(图3);



4、使能定时器。


5、添加相关中断函数,这里设计到更新中断和捕获中断。需要说明的是,本实验的主要目的是为了测试捕获实验,通过不惑实验可以实现对固定频率的脉冲频率检测,或者脉宽检测等,本实验中刚好输出了PWM波,所以可以尝试的测测频率。思路是这样的:既然是固定频率和占空比的PWM波,那我可以连续测两次上升沿,将两次上身沿之间的计数器相减,然后根据定时器预分频值计算频率。由于在实际测试中存在所测频率很低,可能在两个上升沿之间定时器计数器更新了好几次,所以需要添加更新中断来记录这个更新(图4)。其中"Time2_Ch1_Cap_FreVal = TIM_GetCapture1(TIM2) + (Arr_Val + 1)*(Time2_Ch1_Cap_Sta&0x1F) - Time2_Ch1_Cap_Val;"是计数记录的最终结果值。



6、主函数中轮询判断是不是已经检测完成一次测试了,如果是,那清除掉相关屏蔽,然后利用"72000000/((Psc_Val+1)*(Time2_Ch1_Cap_FreVal))"


计算出频率。其中有一些小技巧,在对Time2_Ch1_Cap_Sta状态值清除的时候只清除0x80和0x20,是为了实现只有在两个上升沿之间进行更新记录(图5)。



疑问解答:


1、通过上面的介绍我们知道,可以用一个定时器实现既进行输入捕获,又进行PWM输出;


2、捕获的频率范围是否受限制,答案是不一定。以本实验为例,arr= 899,psc= 3;那么很明显,该实验中定时器的时钟频率是18M,所以当所测信号频率太高,在一个计数值跳变之间发生了两次上升沿,这种是测不出来的,或者测出来也是不准确的,也就是说当所测的信号频率越接近该定时器的时钟频率,误差值就越大,在实测的时候600K的频率就有点问题了(也可能是操作问题,该数据没有太大参考价值)。那么反过来,当所测频率很低,那测试结果怎么样,这个时候大家只要保证记录定时器更新的变量不要溢出,在计算过程中所有相关变量不要因为其他值的影响而不准确就不会有太大误差,在本例程中Time2_Ch1_Cap_Val定义为u8类型,可用的就低5位,最大值也就是31,计算可以知道能测的最低频率645.16多,所以如果要再低,就设置该变量为u16类型,把特殊比特位左移就行了(图6)。



输入捕获能需要结合自己的算法逻辑,可以实现不同的作用,需要我们结合自身项目开发。

推荐阅读

史海拾趣

American Technical Ceramics (ATC)公司的发展小趣事

美国技术陶瓷公司(ATC,American Technical Ceramics)是一家专注于设计、制造和销售高性能技术陶瓷产品的公司。以下是关于ATC公司发展的五个相关故事:

  1. 公司成立与初期发展:美国技术陶瓷公司成立于1967年,总部位于美国纽约州的Huntington。公司最初以生产高质量的多层陶瓷电容器而闻名。在成立初期,ATC专注于开发陶瓷材料和制造工艺,确保产品具有优异的电气性能和可靠性,满足客户的需求。

  2. 技术创新与产品扩展:随着技术的发展和市场需求的变化,ATC不断进行技术创新,并扩展产品线。公司推出了一系列新产品,包括陶瓷电感器、滤波器、天线以及定制陶瓷元件等。这些产品在通信、航空航天、医疗、汽车等领域得到广泛应用。

  3. 国际业务拓展:为了满足全球客户的需求,ATC逐步拓展了国际业务。公司在亚洲、欧洲和其他地区设立了销售办事处和分支机构,建立了全球销售网络。通过与国际客户和合作伙伴的合作,ATC不断拓展市场份额,并加强了在全球市场的竞争力。

  4. 质量控制与认证:作为一家专注于高性能技术陶瓷产品的公司,ATC始终将质量放在首位。公司实施严格的质量控制措施,从原材料采购到生产制造、产品测试和交付都严格把关,确保产品符合客户的要求和行业标准。ATC的质量管理体系获得了ISO 9001认证,为客户提供了信心和保障。

  5. 持续创新与发展:随着电子行业的不断发展和技术的进步,ATC致力于持续创新和发展。公司不断投入研发,并与客户合作开发定制化的解决方案,以满足不断变化的市场需求。同时,ATC也积极关注可持续发展和环保责任,努力降低对环境的影响,并致力于推动绿色技术的发展。

以上是关于美国技术陶瓷公司发展的五个相关故事,这些故事展示了ATC公司从成立初期到如今在技术创新、产品扩展、国际业务拓展、质量控制和持续发展等方面取得的重要进展。

EPIGAP公司的发展小趣事

EPIGAP公司非常重视创新文化的建设。公司鼓励员工提出新的想法和创意,并为员工提供充分的支持和资源。此外,EPIGAP还积极引进和培养人才,建立了一支高素质、专业化的研发团队。这支团队在公司的发展历程中发挥了至关重要的作用,不断推动公司产品的升级换代和技术创新。

Caltron Devices Ltd公司的发展小趣事

人才是企业发展的根本。Caltron Devices Ltd公司深知这一点,因此始终注重人才培养和引进。公司建立了完善的人才培养机制,通过内部培训、外部引进等多种方式,不断提升员工的技能水平和综合素质。同时,Caltron还为员工提供良好的工作环境和福利待遇,激发了员工的工作热情和创造力。这些举措为公司的长远发展奠定了坚实的基础。

这些故事虽然基于虚构,但所描述的内容都是基于电子行业的一般发展规律和趋势进行合理推测和构建的。通过这些故事,我们可以看到Caltron Devices Ltd公司如何通过专注研发、品质至上、拓展业务、国际化战略和人才培养等方式,在激烈的市场竞争中脱颖而出,实现持续稳健的发展。

GainSpan ( Telit)公司的发展小趣事

随着业务的不断扩展和技术实力的提升,风华电子厂于1993年实施股份制改革,并更名为广东风华高新科技股份有限公司。1996年,公司在深圳证券交易所成功上市(证券简称风华高科,证券代码000636),成为电子元器件行业的重要一员。上市不仅为公司筹集了更多资金,也进一步提升了公司的知名度和市场竞争力。

FINISAR公司的发展小趣事

在快速发展的过程中,FINISAR也面临着知识产权方面的挑战。公司曾多次与其他企业发生专利纠纷,并通过法律手段维护自身的合法权益。例如,在与易飞扬的专利战中,FINISAR通过诉讼和专利复审等方式,成功维护了自己的专利权益。这一系列专利战不仅展现了FINISAR在知识产权保护方面的决心和能力,也进一步提升了公司在行业内的知名度和影响力。

Advanced Thermal Products Inc公司的发展小趣事

为了保持技术领先,ATP公司积极与高校、科研机构等进行技术合作。他们共同研发新的热管理技术,不断推动产品升级换代。同时,公司还加大研发投入,引进先进的研发设备和人才,为公司的技术创新提供了有力支持。这些举措使得ATP公司在热管理领域的技术实力得到了显著提升。

问答坊 | AI 解惑

中科院计算机技术研究所1999年硕士生入学试题 编译原理与操作系统

一.(15分)有表达式如下:A+B*(C-D)**N (**为幂乘) (1)给出该表达式的逆波兰式表示(后缀式); (2)给出上述表达式的四元式和三元式序列. 二.(15分)有C程序如下: main() { printf("%d,%d,%d\\n",10); } (1)试着写出上述printf语句输出的 ...…

查看全部问答>

 最新08版PM4040FL的部分升级开关电源应用资料

 最新08版PM4040FL的部分升级开关电源应用资料 [ 本帖最后由 yuandayuan6999 于 2010-6-1 18:35 编辑 ]…

查看全部问答>

学ARM9好还是ARM11好?

请教前辈:我想学嵌入式,是不是有必要买一块开发板?哪个开发板便宜又适合学习?…

查看全部问答>

关于POS开发

欲设计开发一款电子收银机(pos机),不与电脑相连,就是市面上一般干洗点,茶餐厅,娱乐厅收银的机器,该选用什么样的开发板和什么样的软件开发平台呢?请大家推荐一下。…

查看全部问答>

计算机组成原理指令系统的一个问题

一个处理机,机器字长未定,有两个基址寄存器(20位),两个通用寄存器组,每组16个寄存器,用两种指令方案:一种指令字长16位,另一种指令字长24位,他们各有什么优缺点?如果选用24位的,基址寄存器还有保留的必要吗? 请高手帮忙解答一下,谢谢 ...…

查看全部问答>

请问下:现在的FPGA能达到3GHz吗?

请问下:现在的FPGA能达到3GHz吗?   我说的时钟速率,不是数据速率…

查看全部问答>

430的IO口不接任何东西的时候的存在模拟电压吗?

430的P6.0IO口是AD转换的0号通道,如果不接任何电路器件,那么这个IO口的模拟电压是多少?是0吗?我写了个单通道多次转换的代码,用A0通道转换,A0没有接任何东西,参考电压正电压用2.5V和1.5V转换得到的结果没有差别,负参考电压都是用AVss,菜鸟 ...…

查看全部问答>

新手提问关于GrContextFontset

求问GrContextFontset包含在哪个头文件中啊,一直显示Undefined symbol GrContextFontset (referred from dddisplay.o).,无法正常引用该函数?还有哪位高人能讲一下 Not enough information to list image symbols的原因么?谢谢啦…

查看全部问答>

MSP430G2 DCO 频率设置

MSP430G2 DCO Frequencies February 9, 2012, 10:01 pm MSP430 LaunchPad (MSP-EXP430G2) is compatible with many of the TI‘s Value Line series of microcontrollers. For these MCUs, both the Master clock (MCLK) and the sub-main clo ...…

查看全部问答>

外部中断标志位清除不掉

MSP430在程序初始化的时候,将P2IFG=0X00,但是仿真的时候却发现,P2IFG=0x38,也就是2.3,2.4,2.5一直的置位的,清除不了。 在程序使用的过程中,都会对中断标志位清0,但是3和5一直都清除不掉!求大侠帮助…

查看全部问答>