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);
|
||
}
|
||
|
||
|
||
|
||
|