Skip to content

基于100针脚的stm32f103的等精度频率计,可以测频率和占空比,精度高,代码好移植

License

Notifications You must be signed in to change notification settings

Mrsmile013/Equal-precision-frequency-measurement

Repository files navigation

名称:等精度频率计
平台:MDK5 芯片:stm32f103ZET6(100引脚),对于48引脚的,修改小部分程序即可。
要求:频率 1HZ-1MHZ 0.01%精度(达标)
   占空比 1HZ-0.1MHZ 0.1%精度 20%-80%占空比(除了0.1MHZ 70%以上 30%以下达不到 ,其他全部达标)

作者:张颢文
时间:2023.2.7(最终完善时间)
联系方式:1711007965@qq.com
基本原理: 等精度测频,就是所有的测量动作与被测信号同步尽可能减少,测量结束门控带来的误差,将计数误差控制在+-1 所以称为等精度本次课设用的是12MHZ信号源(单片机自己产生),理论上1/12000000 远远小于0.01%(不明白可以自行搜索等精度测量原理,希望我的代码给你带来思路)

实现结果:(废话少说直接上图)

image

      f = 36000 000/48+1/80+1=9070.295

      误差=9070.295*0.0001=0.9

      实际误差=9070.295-9069.748=0.547<0.9(达标)

      d 因为short int型,所以为49*0.6=29

      29/49*100=59.183%

      误差 60%*0.001=0.05918

      实际误差=59.234-59.183=0.051<0.059(达标)

功能:能显示学号(以去除防止泄露)姓名、占空比或频率测量、按键触发显示频率和占空比(同时显示无需切换)

每个文件负责哪部分:
      pwm.c:是频率测量核心代码
      gpio.c:按键
      lcd1602.c:lcd1602驱动代码和姓名学号显示
      (尽可能写注释,分享正确的思路,如有错误请联系我,谢谢!)

每个GPIO作用:
      PA8、PA9输出12MHZ 标准信号源
      PB5、PB4输出 设定被测信号源
      PB0、1、2、8、9、10、11、12、13、14、15、16 用于lcd显示(具体lcd1602.c文件)
      PA0 对标准信号进行计数 TIM5
      PE0 对被测信号进行计数 TIM4
      PA15 对标准信号进行测量(测占空比) TIM2
      PD4 被测信号信号沿(测占空比)EXTI_Line4
      PD1 按键

如何接:
      PA8 - PA15
      PA9 - PA0
      PB5 - PE0
      PB4 - PD4
      PD1 - KEY
      lcd接法具体看lcd1602.c文件

作者的话:
      网上很多的等精度频率计为FPGA所完成的,本人不懂FPGA,所以他们能不能实现不清楚,作者
      通过stm32f103成功验证理论的正确,同时分享出来给网友们,希望给你们的学习带来一点点
      的帮助,如果觉得不错的可以点github上的start给作者,这个对我很重要,不胜感激!!

About

基于100针脚的stm32f103的等精度频率计,可以测频率和占空比,精度高,代码好移植

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published