|
#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)
2023-5-5 14:44 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|