找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 810|回复: 9
收起左侧

哪位能提供个高精度的STM32F0单片机的频率测量的参考例程吗?

[复制链接]
ID:1066092 发表于 2024-3-21 10:04 | 显示全部楼层 |阅读模式
我又不要脸的来寻求指导了,买了个便宜的LC电感电容表买不起信号发生器,我想用nation的N32G031来测这个LC振荡器的频率是多少,因为个人学识和技术水平有限,想在此求一个STM32F03X单片机的精度高的测频实用例程做参考,当然如果万幸刚好有N32G031的例程就更完美了。希望这个例程测量频率能够精度高,不然测量误差太大又会搞不懂究竟是程序测不准还是振荡漂移大或者干脆是电路有问题出在哪个地方了,在此先多谢了!
回复

使用道具 举报

ID:883242 发表于 2024-3-21 16:41 | 显示全部楼层
固件库里面有例程,抄就行了。
回复

使用道具 举报

ID:78901 发表于 2024-3-21 19:46 | 显示全部楼层
51单片机高精度频率计可以吗
回复

使用道具 举报

ID:69038 发表于 2024-3-21 22:02 | 显示全部楼层
软件测频率方法有多种,一种是测极低频率,从几HZ到1HZ以下,这时要测脉冲宽度,并计算频率值,一种是测计数,适用用频率较高,不高于MCU的核心频率(不是振荡频率!很多MCU内部有带倍频器),还有一种是被测率远高于核心频率,这时要被测率先分频再计数。以上3种方法,要求有一个高精准的时钟源做为基准,时钟源准确度越高,测出的数值越准。
另有一种比较另类的方法是,把被测频率通过频率电压转换,MCU通过ADC测电压,结合相关公式,计算出频率,这里要求有高精度的ADC基准电压和ADC电路。

以上文字纯手打,希望对你有点帮助

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:1066092 发表于 2024-3-22 11:17 | 显示全部楼层
先谢谢楼上各位回复.我想测的LC振荡频率应该在十几K左右,再高的话也应该只有一百多k,因为手头没有信号发生器,网上也查到有不完整的测量频率的例子,但是他们所说的测量精度无法验证是真能达到还只是自己说说的能达到那个精度,所以想求一个ST的F0单片机测频率的可靠例程参考,感觉本地的F0的单片机基本是参考ST的做兼容,可相互之间的差距说来还是有蛮大的,所以看ST的例子做参考比看其它家的难度应该要少很多。
回复

使用道具 举报

ID:69038 发表于 2024-3-22 20:51 | 显示全部楼层
hisun 发表于 2024-3-22 11:17
先谢谢楼上各位回复.我想测的LC振荡频率应该在十几K左右,再高的话也应该只有一百多k,因为手头没有信号发生 ...

如果只有几十上百K,完全可以用计计数的方式:
MCU的定时器,开个1秒的中断,再开一个IO口外中断,频率波形整形成方波比较好 ,因为LC振荡大都是正弦波。方波从IO输入,触发计数,一个方波计一次,1秒的时间内计了多少数,就是这个波形的频率了。。
回复

使用道具 举报

ID:883242 发表于 2024-3-22 23:48 | 显示全部楼层
hisun 发表于 2024-3-22 11:17
先谢谢楼上各位回复.我想测的LC振荡频率应该在十几K左右,再高的话也应该只有一百多k,因为手头没有信号发生 ...

你这个频率范围那就开一个1s~10s定时中断,时间称之为门时间,然后把输入接到EXTI上,然后数门时间内发生了多少次中断就行了。
回复

使用道具 举报

ID:1066092 发表于 2024-3-23 00:12 | 显示全部楼层
再次多谢各位指点。我的需求是要准,测量出来的频率要准才有用,只能开100ms或者是更小的10ms测一次的振荡频率究竟是多少,如果频率出现偏差那就是外部有问题被干扰到了,如果测量不准就没办法知道是频率测量错误还是被干扰了,就算考虑温漂的话正常是频率不会突变,如果测量出来的频率突变肯定可以计为外部原因的。因为没有信号发生器也无法比较网上那些例子测量出来的频率准确度有多高,才出此下策看这里哪个搞过频率测量的能给个例程参考参考,或者能说说怎么样才能在指定的时间单位内尽可能提高频率的测量精度。
我打算的是将LC振荡器的信号送到单片机内运放做跟随器缓冲后再送到单片机的比较器,比较器按迟滞比较器用迟滞电压最大只有30mv,比较器后还可以跟一级滤波,但是不懂这单片机的比较器后的滤波是啥意思,自己想这样的话干扰的话应该是少很多了,然后就是怎么提高计频的准确度,就是不知道怎么提高频率计数的准确度,不误计不少计。
回复

使用道具 举报

ID:1034262 发表于 2024-3-24 13:13 | 显示全部楼层
我用STC8系列的MCU做双频率计,MCU跑32768MHz高精度温补晶振,不用前置分频可以直接测量15MHz的频率,精度取决于32.768M的精度,一般可以做到0.1PPM。使用前置分频则取决于前置分频系数,常用的可以到2.4GHz。
回复

使用道具 举报

ID:883242 发表于 2024-3-24 23:03 | 显示全部楼层
hisun 发表于 2024-3-23 00:12
再次多谢各位指点。我的需求是要准,测量出来的频率要准才有用,只能开100ms或者是更小的10ms测一次的振荡 ...

先做出来在考虑频率精度问题,普通石英晶体做到十万分之一的精度很轻松。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表