分享0.5HZ -20M以上频率计 ,分辨率0.01HZ

2019-07-20 23:18发布

分辨率0.01HZ(^_^ 有点吹,其实10HZ一下能到0.01HZ)

1.5K以下用TM5 捕获 PA0脚

1.5K-20M(信号发生器只能输出20M)以上用TM2计数 PA0脚

主函TM2和TM3的初始化(先计数模式判断输入频率大小),  再运行 void Freq_Filter_Process(void)   即可 ,里面的显示程序自己修改成自己的显示程序

希望对做频率计的有帮助,顺便感谢“正点原子”为STM32做的贡献!哈哈



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
30条回答
秋天
1楼-- · 2019-07-24 08:26
 精彩回答 2  元偷偷看……
狼面众
2楼-- · 2019-07-24 09:34
Counter_Dispaly那个函数具体作用是什么啊,找不到那个函数啊
if(Freq_value>=1000000.0)Counter_Dispaly(100,200,BLACK,LIGHTGREEN," %5.3f MHz",Freq_value/1000000.0);
else if ((Freq_value>=100000.0)&&(Freq_value<999999.9))  Counter_Dispaly(100,200,BLACK,LIGHTGREEN," %5.1f KHz",Freq_value/1000.0);
else if((Freq_value>=10000.0)&&(Freq_value<99999.9))Counter_Dispaly(100,200,BLACK,LIGHTGREEN," %5.2f KHz",Freq_value/1000.0);   
else if((Freq_value>=1000.0)&&(Freq_value<9999.9)) Counter_Dispaly(100,200,BLACK,LIGHTGREEN," %5.3f KHz",Freq_value/1000.0);
else if((Freq_value>=100.0)&&(Freq_value<999.9))Counter_Dispaly(100,200,BLACK,LIGHTGREEN,"  %5.1f Hz ",Freq_value);
else if((Freq_value>=10.0)&&(Freq_value<99.9))Counter_Dispaly(100,200,BLACK,LIGHTGREEN,"  %5.2f Hz ",Freq_value);
else if(Freq_value<10.0) Counter_Dispaly(100,200,BLACK,LIGHTGREEN,"  %5.3f Hz ",Freq_value);
就这个里面的count_display不明白               
mack13013
3楼-- · 2019-07-24 14:56
huazhongxian 发表于 2018-5-15 21:20
这个测试一下 ,效果很不错。最高是(18M),精度基本能达到要求

使用比较器+计数器,频率最高范围还能翻几倍
opk666
4楼-- · 2019-07-24 15:31
谢谢分享
3057040080
5楼-- · 2019-07-24 19:53
 精彩回答 2  元偷偷看……
PMCCM
6楼-- · 2019-07-24 23:22
狼面众 发表于 2018-11-23 21:46
Counter_Dispaly那个函数具体作用是什么啊,找不到那个函数啊
if(Freq_value>=1000000.0)Counter_Dispaly( ...

在lcd屏显示频率的函数。

一周热门 更多>