找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4857|回复: 4
打印 上一主题 下一主题
收起左侧

STM32F103单片机简易频率计(ADC)

[复制链接]
跳转到指定楼层
楼主
ID:552460 发表于 2019-12-8 13:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.可测方波信号频率范围:100HZ--1KHZ
2.频率误差<2%
3.可以测正弦波信号频率50hz--1khz  (MiniSTM32)
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "capture.h"
  6. #include "lcd.h"
  7. #include "exti.h"
  8. #include <stdio.h>
  9. #include"key.h"
  10. extern u16  TIM2CH1_CAPTURE_STA;  //         
  11. extern u16 chanal_value2; //
  12. extern u16 chanal_value1;
  13. extern u32  TIM2CH1_CAPTURE_VAL;
  14. extern u16  TIM3CH3_CAPTURE_STA;  //      
  15. extern u16 freone; //
  16. extern u16 fretwo;  //
  17. extern u32 TIM3CH3_CAPTURE_VAL;
  18. u32 Frequency;
  19. u32 num[3];
  20. u32 prio[3];
  21. int main(void)
  22.   
  23. {
  24.   float Phase;
  25. u32 temp;
  26. u8 flag,i;
  27. u8 outdata[20];
  28.   KEY_Init();
  29. delay_init();      
  30. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  31. uart_init(9600);   //
  32. LED_Init();      //
  33.   LCD_Init();
  34. POINT_COLOR=RED;//
  35. LCD_ShowString(60,50,200,16,16, "Frequency and Phase");
  36. LCD_ShowString(60,70,200,16,16, "TEST");
  37. LCD_ShowString(60,90,200,16,16, "2019/5/3");
  38. POINT_COLOR=BLUE;//
  39. //TIM2_cap_Init(0xffff,0);//
  40. TIM3_cap_Init(0xffff,0);//
  41. while(1)
  42. {
  43. //  switch(KEY_Scan(0))
  44. //  {
  45. //   case KEY0_PRES:
  46. //   Frequency=temp;
  47. //   sprintf(outdata,"Txet Freq:%0.2f HZ",(float)1000000/Frequency*72*8);
  48. //   
  49. //   LCD_ShowString(0,150,200,16,16,outdata);
  50. //   break;
  51. //  }
  52. //        if(j<3)
  53. //     {
  54. //     prio[j]=TIM2CH1_CAPTURE_VAL;
  55. //     j++;
  56. //     if(j==3)
  57. //     {j=0;}
  58. //      }
  59. //      TIM2CH1_CAPTURE_STA=0;
  60. //    if(num[0]>num[1])
  61. //    {
  62. //     if(num[0]> num[2])
  63. //     temp1=num[0];
  64. //    }
  65. //    else
  66. //     if(num[1]>num[2])
  67. //     {
  68. //      temp1=num[1];
  69. //     }
  70. //   else   temp1=num[1];
  71. //      
  72. //      sprintf(outdata,"Phase:%0.2f'",(float)(temp1/72)/(Frequency/72/8))*360);
  73. //  if(TIM2CH1_CAPTURE_STA&0X8000)//Ïàλ²î
  74. //  {
  75. //     flag=TIM2CH1_CAPTURE_STA&0x3fff;
  76. //     if(flag==0) TIM2CH1_CAPTURE_VAL-=chanal_value1;
  77. //      else TIM2CH1_CAPTURE_VAL+=(0xffff-chanal_value1)+65536*(--flag);
  78. //   
  79. ////   Phase=(float)((TIM2CH1_CAPTURE_VAL/72)/(Frequency/72/8))*360; %0.2f'
  80. //      sprintf(outdata,"Phase:%0.2f',%d",(float)TIM2CH1_CAPTURE_VAL*8/Frequency*360,TIM2CH1_CAPTURE_VAL);
  81. //   LCD_ShowString(0,120,200,16,16,"                                  ");
  82. //   LCD_ShowString(0,120,200,16,16,outdata);
  83. //   TIM2CH1_CAPTURE_STA=0;
  84. //   TIM2CH1_CAPTURE_VAL=0;
  85. //   }
  86.   if(TIM3CH3_CAPTURE_STA&0x8000)
  87.   {   
  88.    if((TIM3CH3_CAPTURE_STA&0x3FFf)>=1)
  89.    {
  90.      TIM3CH3_CAPTURE_STA--;
  91.    }
  92.    TIM3CH3_CAPTURE_VAL+=((TIM3CH3_CAPTURE_STA&0x3fff))*65536;
  93. //   if(i<2)
  94. //   {
  95. //      num[i]=TIM3CH3_CAPTURE_VAL;
  96. //    i++;
  97. //    if(i==1) i=0;
  98. //   }
  99. //   if(num[0]<num [1]) temp=num[1];
  100. //   else temp=num[0];
  101.    sprintf( outdata,"Frequency:   %0.2f HZ,",(float)1000000/TIM3CH3_CAPTURE_VAL*72*8);
  102.      LCD_ShowString(0,90,200,16,16,outdata);  
  103.    TIM3CH3_CAPTURE_VAL=0;
  104.    TIM3CH3_CAPTURE_STA=0;
  105. }
  106. LED0 =!LED0 ;
  107. delay_ms (500);}
  108. }
复制代码
全部资料51hei下载地址:
相位&amp;频率计 - 副本.7z (233.03 KB, 下载次数: 78)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:116773 发表于 2019-12-8 15:14 | 只看该作者
这个7z是什么压缩程序啊?我将后缀改为ZIP或RAR都不能解压。
回复

使用道具 举报

板凳
ID:328014 发表于 2019-12-9 00:30 | 只看该作者
hujj 发表于 2019-12-8 15:14
这个7z是什么压缩程序啊?我将后缀改为ZIP或RAR都不能解压。

改名是不行的,你要安装一个winrar才行,51hei全部都是用7z,目前最先进的的压缩就是他
回复

使用道具 举报

地板
ID:446567 发表于 2023-3-13 08:52 | 只看该作者
下载学习一下,这个可以给到我好大的帮助
回复

使用道具 举报

5#
ID:270740 发表于 2023-3-16 17:17 | 只看该作者
学习一下,这个可以给到我好大的帮助
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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