STM32捕获模式捕获一次计数器清不清零(很急!!谢谢了)

来源:百度知道 编辑:UC知道 时间:2024/06/23 01:48:50
我想用STM32的TIM的捕获模式测量频率。遇到了点问题,想请高手请教啊.
我的测频原理是这样的:
TIM2采用外部时钟模式2加触发模式。将待测信号接入TIM2的ETR输入端,通过一个脉冲同步电路产生的同步脉冲(作为触发脉冲)来控制计数器计数。这个控制脉冲信号从通道一送入单片机。当来第一个脉冲时计数器开始计待测信号上升沿数,下一个脉冲到来时,捕获计数器的值到捕获寄存器。再下一个控制脉冲到来时再捕获计数器的值到寄存器。
与此同时TIM3通过同一个控制脉冲用同样的方法来计一个已知频率(如8M)的标准时钟的上升沿的个数。
通过两个计数器的值和标准脉冲频率可计算出待测信号的频率。
但是像这样做的话,在每次捕获的时候需要计数器是自动清零,然后从零计数的,不知道STM32单片机在这个模式下是不是向这样工作的?恳请高手讲解!!很急!!谢谢了!!!
感谢flyunlimit,
能给我介绍个你觉得更好的测频方法吗(信号频率是变化的),正在做这个东西,十分感谢啊~~~~~~

1、中断里手动清0

2、这样测频率好笨。

补充:先保留第2点。请问你为什么要搞的这么复杂?你直接测量2个沿的时间不就知道频率了吗?如果测一个不准,就多测几个再平均。STM32使用外部8M晶振做系统时钟。精度也是有保证的。
或者你有别的考虑说来听听,有段时间没玩STM32了,忘得差不多了,乘机再熟悉一下。

第2点我不删了,算是对自己的一个警示吧。楼主用的是全同步数字测频,我完全不知道,显得我很笨。学无止境啊!

这是个不错的熟悉STM32定时器的机会,所以我也想试试做个频率测量玩玩,我5月初刚买了一个50M带宽的数字示波器,算是有条件。

你有多急?很急的话我可以先帮你看看程序。

把中断关了,自动清零!!!