********************************************************************************************************/
#include "stm32f10x_lib.h"
/*************************************函數(shù)聲明**********************************/
void SysTick_Config(void);//SysTick定時器配置
void Delay_Ms(u32);//定時時間配置
void TimingDelay_Decrement(void);//中斷定時時間處理函數(shù)
static vu32 TimingDelay;//中斷處理函數(shù)
/*******************************************************************************
* 函數(shù)名稱 : void SysTick_Config(void)
* 函數(shù)描述:SysTick定時器配置
* 輸入?yún)?shù):無
* 輸出參數(shù):無
* 返回值:無
*******************************************************************************/
//SysTick設置
void SysTick_Config(void)
{
/* Disable SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Disable);
/*函數(shù)原形 void SysTick_CounterCmd(u32 SysTick_Counter)
功能描述 使能或者失能SysTick計數(shù)器
輸入?yún)?shù) SysTick_Counter:SysTick計數(shù)器新狀態(tài)
SysTick_Counter_Disable 失能計數(shù)器
SysTick_Counter_Enable 使能計數(shù)器
SysTick_Counter_Clear 清除計數(shù)器值為0 */
/* Disable the SysTick Interrupt */
SysTick_ITConfig(DISABLE);
/*函數(shù)原形 void SysTick_ITConfig(FunctionalState NewState)
功能描述 使能或者失能SysTick中斷
輸入?yún)?shù) NewState:SysTick中斷的新狀態(tài)
這個參數(shù)可以?。篍NABLE或者DISABLE*/
/* Configure HCLK clock as SysTick clock source */
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
/*函數(shù)原形 void SysTick_CLKSourceConfig(u32 SysTick_CLKSource)
功能描述 設置SysTick時鐘源
輸入?yún)?shù) SysTick_CLKSource:SysTick時鐘源
SysTick_CLKSource_HCLK_Div8 SysTick時鐘源為AHB時鐘除以8
SysTick_CLKSource_HCLK SysTick時鐘源為AHB時鐘*/
/* SysTick interrupt each 1000 Hz with HCLK equal to 72MHz */
SysTick_SetReload(9000);
//系統(tǒng)嘀嗒校準值固定到9000,當系統(tǒng)嘀嗒時鐘設定為9 兆赫,產(chǎn)生1ms 時基。
/*函數(shù)原形 void SysTick_SetReload(u32 Reload)
功能描述 設置SysTick重裝載值
輸入?yún)?shù) Reload:重裝載值
該參數(shù)取值必須在1和0x00FFFFFF之間*/
/* Enable the SysTick Interrupt */
SysTick_ITConfig(ENABLE);
/*函數(shù)原形 void SysTick_ITConfig(FunctionalState NewState)
功能描述 使能或者失能SysTick中斷
輸入?yún)?shù) NewState:SysTick中斷的新狀態(tài)
這個參數(shù)可以?。篍NABLE或者DISABLE*/
}
/*******************************************************************************
* 函數(shù)名稱 :void Delay_Ms(u32 nTime)
* 函數(shù)描述:定時時間配置
* 輸入?yún)?shù):u32 nTime
* 輸出參數(shù):無
* 返回值:無
*******************************************************************************/
void Delay_Ms(u32 nTime)
{
/* Enable the SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Enable);
/*函數(shù)原形 void SysTick_CounterCmd(u32 SysTick_Counter)
功能描述 使能或者失能SysTick計數(shù)器
輸入?yún)?shù) SysTick_Counter:SysTick計數(shù)器新狀態(tài)
參閱Section:SysTick_Counter查閱更多該參數(shù)允許取值范圍
SysTick_Counter_Disable 失能計數(shù)器
SysTick_Counter_Enable 使能計數(shù)器
SysTick_Counter_Clear 清除計數(shù)器值為0*/
TimingDelay = nTime;
while(TimingDelay != 0)
{
}
/*函數(shù)原形 void SysTick_CounterCmd(u32 SysTick_Counter)
功能描述 使能或者失能SysTick計數(shù)器
輸入?yún)?shù) SysTick_Counter:SysTick計數(shù)器新狀態(tài)
參閱Section:SysTick_Counter查閱更多該參數(shù)允許取值范圍
SysTick_Counter_Disable 失能計數(shù)器
SysTick_Counter_Enable 使能計數(shù)器
SysTick_Counter_Clear 清除計數(shù)器值為0*/
/* Disable SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Disable);
/* Clear SysTick Counter */
SysTick_CounterCmd(SysTick_Counter_Clear);
/*函數(shù)原形 void SysTick_CounterCmd(u32 SysTick_Counter)
功能描述 使能或者失能SysTick計數(shù)器
輸入?yún)?shù) SysTick_Counter:SysTick計數(shù)器新狀態(tài)
參閱Section:SysTick_Counter查閱更多該參數(shù)允許取值范圍
SysTick_Counter_Disable 失能計數(shù)器
SysTick_Counter_Enable 使能計數(shù)器
SysTick_Counter_Clear 清除計數(shù)器值為0*/
}
/*******************************************************************************
* 函數(shù)名稱 :void TimingDelay_Decrement(void)
* 函數(shù)描述:中斷定時時間處理函數(shù)
* 輸入?yún)?shù):u32 nTime
* 輸出參數(shù):無
* 返回值:無
*******************************************************************************/
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}