52 lines
1.1 KiB
Plaintext
52 lines
1.1 KiB
Plaintext
|
/***
|
|||
|
***************************************************************************
|
|||
|
* @file delay.c
|
|||
|
* @version V1.0.0
|
|||
|
* @brief delay接口相关函数
|
|||
|
***************************************************************************
|
|||
|
* @description
|
|||
|
*
|
|||
|
* SysTick定时器配置为1ms中断,实现毫秒延时
|
|||
|
*
|
|||
|
***************************************************************************
|
|||
|
***/
|
|||
|
|
|||
|
#include "delay.h"
|
|||
|
|
|||
|
static __IO u32 TimingDelay; //计数变量
|
|||
|
|
|||
|
|
|||
|
// 函数:延时初始化
|
|||
|
// 说明:配置 SysTick 为1ms中断,并启动定时器
|
|||
|
//
|
|||
|
void Delay_Init(void)
|
|||
|
{
|
|||
|
SysTick_Config(SystemCoreClock / 1000); //配置SysTick时钟为1ms中断
|
|||
|
}
|
|||
|
|
|||
|
// 函数:计时函数
|
|||
|
// 说明:在 SysTick 中断服务函数里被调用
|
|||
|
//
|
|||
|
void OS_CPU_SysTickHandler(void)
|
|||
|
{
|
|||
|
if (TimingDelay != 0)
|
|||
|
{
|
|||
|
TimingDelay--;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 函数:毫秒延时
|
|||
|
// 参数:nTime - 延时时间,单位ms
|
|||
|
// 说明:每次调用都会重新给TimingDelay赋值,实现 n 毫秒的延时,最大延时 4294967295 ms。
|
|||
|
//
|
|||
|
void Delay_ms(u32 nTime)
|
|||
|
{
|
|||
|
TimingDelay = nTime;
|
|||
|
|
|||
|
while(TimingDelay != 0);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|