找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4770|回復(fù): 2
收起左側(cè)

正點原子STM32f1頻率測量源程序修改版

[復(fù)制鏈接]
ID:435708 發(fā)表于 2019-7-17 15:11 | 顯示全部樓層 |閱讀模式
我是在精英板PWM例程上做的修改,保留了原本的PB5的PWM輸出,這樣可以馬上輸出波形并觀測。在Timer.c中添加了PA0定時器5的代碼,波形通過PA0檢測,并把OLED顯示添加到了工程,最后以O(shè)LED顯示輸出。用示波器測PB5輸出頻率為9542,stm32檢測為9545,誤差不大?梢栽谥骱瘮(shù)中調(diào)整TIM3_PWM_Init(7542,0);來修改頻率,PB5輸出PWM頻率=72000000/7542=9545HZ,修改第一個入口參數(shù)即可修改率 ,修改TIM_SetCompare2(TIM3,3999);可以調(diào)整占空比,占空比=3999/7542 。

制作出來的實物圖如下:
2.jpg 4.jpg 1.jpg

單片機源程序如下:
  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āng)前頻率為:%d Hz\r\n",fq);
  20.                
  21.                
  22.                
  23.         TIM_SetCounter(TIM2,0);
  24.     }
  25. }

  26. */


  27. int main(void)
  28. {       

  29.         delay_init();                     //延時函數(shù)初始化          
  30.                   //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  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.         }
復(fù)制代碼

所有資料51hei提供下載:
頻率計.7z (197.89 KB, 下載次數(shù): 108)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:435708 發(fā)表于 2019-7-17 18:34 | 顯示全部樓層
補充一句 這個不能測有負電壓的波形,只能測具有占空比的正方波,否則誤差很大
回復(fù)

使用道具 舉報

ID:449185 發(fā)表于 2019-8-10 01:47 | 顯示全部樓層
樓主能介紹下怎么用嗎?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表