求用STM32单片机测频率的方法

2020-01-01 17:55发布

最近在做一个测频计用STM32,我目前最大只能测到50KHz,最小只到100HZ,但是题目要求10Hz~100kHz,相对误差≤0.1%,请问下通过对STM32的内部设置可以达到题目要求吗?求教求教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
10192201
1楼-- · 2020-01-02 21:22
lllaaa 发表于 2012-4-22 12:57
tim对外部频率源计数的时候,输入频率最高频率能到多少啊

我测到50KHZ的方波就不行了
10192201
2楼-- · 2020-01-03 00:15
fnems 发表于 2012-4-22 12:54
“把定时的时间缩短之后,高频的脉冲计数就精确多了”,
难道说之前有溢出?

那您的意思是用周期法时,要测量好几个周期的时间再取平均值,但是这样的话如果我要测10HZ的话,1000次就是100S这个反映速度不是很慢吗?
10192201
3楼-- · 2020-01-03 04:40
 精彩回答 2  元偷偷看……
Blue_oldman
4楼-- · 2020-01-03 09:29
测周期法是没来个脉冲,记下当前定时器的值,再来个脉冲又记下当前定时器的值,同时定时器的溢出中断记录溢出次数。
那么两个定时值一相减,然后加上溢出的时间就是一个脉冲的周期了。
10192201
5楼-- · 2020-01-03 13:16
Blue_oldman 发表于 2012-6-7 16:12
测周期法是没来个脉冲,记下当前定时器的值,再来个脉冲又记下当前定时器的值,同时定时器的溢出中断记录溢 ...

哦,还可以这样,有知道了一种方法,谢谢了啊
Blue_oldman
6楼-- · 2020-01-03 18:53
还有一种等精度测量的方法,没尝试过。
需要用到2个定时计数器,一个对标准的信号计数(晶振之类的),另一个对被测信号计数。
首先MCU发出一个接受测试脉冲的信号,如果检测到测试信号的上升或者下降沿,则两个计数器同时开始计数。过一定时间后,MCU再发出一个结束接受测试脉冲的信号。此后
检测到测试脉冲的上升或者下降沿,就同时停止两个定时计数器的计数。假如测试脉冲记录了N个脉冲,标准信号记录了M个脉冲,且标准信号的频率为f。则测试脉冲的频率为
F=(N/M)*f。

一周热门 更多>