找回密码
 立即注册

QQ登录

只需一步,快速开始

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

正点原子STM32f1频率测量源程序修改版

[复制链接]
跳转到指定楼层
楼主
我是在精英板PWM例程上做的修改,保留了原本的PB5的PWM输出,这样可以马上输出波形并观测。在Timer.c中添加了PA0定时器5的代码,波形通过PA0检测,并把OLED显示添加到了工程,最后以OLED显示输出。用示波器测PB5输出频率为9542,stm32检测为9545,误差不大。可以在主函数中调整TIM3_PWM_Init(7542,0);来修改频率,PB5输出PWM频率=72000000/7542=9545HZ,修改第一个入口参数即可修改率 ,修改TIM_SetCompare2(TIM3,3999);可以调整占空比,占空比=3999/7542 。

制作出来的实物图如下:


单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "timer.h"
  7. #include "oled.h"

  8. /*u32 fq;
  9.         u32 CNT=0;
  10.        
  11. void TIM5_IRQHandler(void)
  12. {
  13.     if(TIM_GetITStatus(TIM5,TIM_IT_Update)!= RESET)
  14.     {
  15.         TIM_ClearITPendingBit(TIM5,TIM_IT_Update);  
  16.          
  17.         CNT=TIM_GetCounter(TIM2);
  18.         fq=CNT;
  19.                         printf("当前频率为:%d Hz\r\n",fq);
  20.                
  21.                
  22.                
  23.         TIM_SetCounter(TIM2,0);
  24.     }
  25. }

  26. */


  27. int main(void)
  28. {       

  29.         delay_init();                     //延时函数初始化          
  30.                   //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  31.         uart_init(115200);         //串口初始化为115200
  32.         LED_Init();                             //LED端口初始化
  33.        
  34.          TIM2_Init();
  35.          TIM5_Int_Init(9999,7199);       

  36.          TIM3_PWM_Init(7542,0);
  37.          TIM_SetCompare2(TIM3,3999);
  38.          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  39.          OLED_Init();       
  40.                  OLED_Refresh_Gram();

  41. //不分频。PWM频率=72000000/900=80Khz
  42. while(1)
  43.         {  
  44.          TIM_Cmd(TIM2, ENABLE);
  45.                 TIM_Cmd(TIM3, ENABLE);
  46.                 TIM_Cmd(TIM5, ENABLE);
  47.                 OLED_Refresh_Gram();
  48.        
  49.                 OLED_ShowNum(20,30,frequence,7,16);
  50.                
  51.   }

  52.          
  53.         }
复制代码

所有资料51hei提供下载:
频率计.7z (197.89 KB, 下载次数: 108)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:435708 发表于 2019-7-17 18:34 | 只看该作者
补充一句 这个不能测有负电压的波形,只能测具有占空比的正方波,否则误差很大
回复

使用道具 举报

板凳
ID:449185 发表于 2019-8-10 01:47 | 只看该作者
楼主能介绍下怎么用吗?
回复

使用道具 举报

无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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