一、簡介
本文介紹STM32系列如何使用timer2進行精確定時。
二、實驗平臺
庫版本:STM32F10x_StdPeriph_Lib_V3.5.0
編譯軟件:MDK4.53
硬件平臺:STM32開發(fā)板(主芯片stm32f103c8t6)
仿真器:JLINK
三、版權(quán)聲明
四、實驗前提
1、在進行本文步驟前,請先閱讀以下博文:
暫無
2、在進行本文步驟前,請先實現(xiàn)以下博文:
暫無
五、基礎知識
暫無
六、實驗步驟
1、編寫并添加定時器2驅(qū)動
1)編寫驅(qū)動GUA_Timer2.c(存放在“……HARDWARE”)
//******************************************************************************
//name: GUA_Timer2.c
//introduce: 定時器2驅(qū)動
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
#include "stm32f10x.h"
#include "GUA_Timer2.h"
/*********************宏定義************************/
//時鐘宏
#define GUA_TIMER2_PERIPH_CLOCK RCC_APB1Periph_TIM2
/*********************內(nèi)部變量************************/
static GUA_U64 sGUA_Timer2_TimingDelay_1 = 0;
static GUA_U64 sGUA_Timer2_TimingDelay_2 = 0;
//******************************************************************************
//name: GUA_Timer2_TimingDelay_Decrement
//introduce: 定時器2數(shù)值減1的處理操作
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_TimingDelay_Decrement(void)
{
//變量1做遞減
if(sGUA_Timer2_TimingDelay_1 != 0x00)
{
sGUA_Timer2_TimingDelay_1--;
}
//變量2做遞減
if(sGUA_Timer2_TimingDelay_2 != 0x00)
{
sGUA_Timer2_TimingDelay_2--;
}
}
//******************************************************************************
//name: GUA_Timer2_StartDelayMs_1
//introduce: 啟動延時
//parameter: nGUA_Timer2_Time:需要延時的ms數(shù)
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_StartDelayMs_1(GUA_U64 nGUA_Timer2_Time)
{
sGUA_Timer2_TimingDelay_1 = nGUA_Timer2_Time;
}
//******************************************************************************
//name: GUA_Timer2_CheckDelayMs_1
//introduce: 檢查延時
//parameter: none
//return: 剩余的延時ms數(shù)
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
GUA_U64 GUA_Timer2_CheckDelayMs_1(void)
{
return sGUA_Timer2_TimingDelay_1;
}
//******************************************************************************
//name: GUA_Timer2_StartDelayMs_2
//introduce: 啟動延時
//parameter: nGUA_Timer2_Time:需要延時的ms數(shù)
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_StartDelayMs_2(GUA_U64 nGUA_Timer2_Time)
{
sGUA_Timer2_TimingDelay_2 = nGUA_Timer2_Time;
}
//******************************************************************************
//name: GUA_Timer2_CheckDelayMs_2
//introduce: 檢查延時
//parameter: none
//return: 剩余的延時ms數(shù)
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
GUA_U64 GUA_Timer2_CheckDelayMs_2(void)
{
return sGUA_Timer2_TimingDelay_2;
}
//******************************************************************************
//name: GUA_Timer2_Init
//introduce: 定時器2初始化
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
上一篇:STM32之霍爾傳感器模塊
下一篇:STM32之DRV8834電機驅(qū)動(PWM方式)
- 熱門資源推薦
- 熱門放大器推薦