找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 1379|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于STM32F103單片機(jī)定時(shí)器的輸入捕獲程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1075158 發(fā)表于 2023-5-3 21:05 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "key.h"
#include "timer.h"

extern u8  TIM5CH1_CAPTURE_STA;        //輸入捕獲狀態(tài)                           
extern u32    TIM5CH1_CAPTURE_VAL;    //輸入捕獲值

int main(void)
{     
    long long temp=0;
   
    HAL_Init();                             //初始化HAL庫(kù)   
    Stm32_Clock_Init(RCC_PLL_MUL9);       //設(shè)置時(shí)鐘,72M
    delay_init(72);                       //初始化延時(shí)函數(shù)
    uart_init(115200);                    //初始化串口
    LED_Init();                            //初始化LED   
    TIM1_PWM_Init(500-1,72-1);             //72M/72=1M的計(jì)數(shù)頻率,自動(dòng)重裝載為500,那么PWM頻率為1M/500=2kHZ
    TIM5_CH1_Cap_Init(0XFFFF,72-1);        //以1Mhz的頻率計(jì)數(shù)
   
    while(1)
    {
        delay_ms(10);
        TIM_SetTIM1Compare1(TIM_GetTIM1Capture1()+1);
        if(TIM_GetTIM1Capture1()==300)TIM_SetTIM1Compare1(0);        
        if(TIM5CH1_CAPTURE_STA&0X80)        //成功捕獲到了
        {
            temp=TIM5CH1_CAPTURE_STA&0X3F;
            temp*=65536;                     //溢出時(shí)間總和
            temp+=TIM5CH1_CAPTURE_VAL;      //得到總的高電平時(shí)間
            printf("HIGH:%lld us\r\n",temp);//打印總的高點(diǎn)平時(shí)間
            TIM5CH1_CAPTURE_STA=0;          //開啟下一次捕獲
        }
    }
}



Keil代碼下載: Keil代碼.7z (1.29 MB, 下載次數(shù): 33)

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
admin + 10 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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