********************************************************************************************************/ #include "stm32f10x_lib.h" /*************************************函数声明**********************************/ void SysTick_Config(void);//SysTick定时器配置 void Delay_Ms(u32);//定时时间配置 void TimingDelay_Decrement(void);//中断定时时间处理函数 static vu32 TimingDelay;//中断处理函数 /******************************************************************************* * 函数名称 : void SysTick_Config(void) * 函数描述:SysTick定时器配置 * 输入参数:无 * 输出参数:无 * 返回值:无 *******************************************************************************/ //SysTick设置 void SysTick_Config(void) { /* Disable SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Disable); /*函数原形 void SysTick_CounterCmd(u32 SysTick_Counter) 功能描述 使能或者失能SysTick计数器 输入参数 SysTick_Counter:SysTick计数器新状态 SysTick_Counter_Disable 失能计数器 SysTick_Counter_Enable 使能计数器 SysTick_Counter_Clear 清除计数器值为0 */ /* Disable the SysTick Interrupt */ SysTick_ITConfig(DISABLE); /*函数原形 void SysTick_ITConfig(FunctionalState NewState) 功能描述 使能或者失能SysTick中断 输入参数 NewState:SysTick中断的新状态 这个参数可以取:ENABLE或者DISABLE*/ /* Configure HCLK clock as SysTick clock source */ SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); /*函数原形 void SysTick_CLKSourceConfig(u32 SysTick_CLKSource) 功能描述 设置SysTick时钟源 输入参数 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); //系统嘀嗒校准值固定到9000,当系统嘀嗒时钟设定为9 兆赫,产生1ms 时基。 /*函数原形 void SysTick_SetReload(u32 Reload) 功能描述 设置SysTick重装载值 输入参数 Reload:重装载值 该参数取值必须在1和0x00FFFFFF之间*/
/* Enable the SysTick Interrupt */
SysTick_ITConfig(ENABLE); /*函数原形 void SysTick_ITConfig(FunctionalState NewState) 功能描述 使能或者失能SysTick中断 输入参数 NewState:SysTick中断的新状态 这个参数可以取:ENABLE或者DISABLE*/}
/*******************************************************************************
* 函数名称 :void Delay_Ms(u32 nTime) * 函数描述:定时时间配置 * 输入参数:u32 nTime * 输出参数:无 * 返回值:无 *******************************************************************************/ void Delay_Ms(u32 nTime) { /* Enable the SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Enable); /*函数原形 void SysTick_CounterCmd(u32 SysTick_Counter) 功能描述 使能或者失能SysTick计数器 输入参数 SysTick_Counter:SysTick计数器新状态 参阅Section:SysTick_Counter查阅更多该参数允许取值范围 SysTick_Counter_Disable 失能计数器 SysTick_Counter_Enable 使能计数器 SysTick_Counter_Clear 清除计数器值为0*/ TimingDelay = nTime;while(TimingDelay != 0)
{ } /*函数原形 void SysTick_CounterCmd(u32 SysTick_Counter) 功能描述 使能或者失能SysTick计数器 输入参数 SysTick_Counter:SysTick计数器新状态 参阅Section:SysTick_Counter查阅更多该参数允许取值范围 SysTick_Counter_Disable 失能计数器 SysTick_Counter_Enable 使能计数器 SysTick_Counter_Clear 清除计数器值为0*/ /* Disable SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Disable); /* Clear SysTick Counter */ SysTick_CounterCmd(SysTick_Counter_Clear); /*函数原形 void SysTick_CounterCmd(u32 SysTick_Counter) 功能描述 使能或者失能SysTick计数器 输入参数 SysTick_Counter:SysTick计数器新状态 参阅Section:SysTick_Counter查阅更多该参数允许取值范围 SysTick_Counter_Disable 失能计数器 SysTick_Counter_Enable 使能计数器 SysTick_Counter_Clear 清除计数器值为0*/ }/*******************************************************************************
* 函数名称 :void TimingDelay_Decrement(void) * 函数描述:中断定时时间处理函数 * 输入参数:u32 nTime * 输出参数:无 * 返回值:无 *******************************************************************************/ void TimingDelay_Decrement(void) { if (TimingDelay != 0x00) { TimingDelay--; } }