标签:
/**********************************************************************************
* 文件名 :SysTick.c
* 描述 :SysTick 系统滴答时钟10us中断函数库,中断时间可自由配置,
* 常用的有 1us 10us 1ms 中断。
* 库版本 :ST3.5.0
**********************************************************************************/
#include "SysTick.h"
static __IO u32 TimingDelay;
/*---------------------------------------------------------------------
* 启动系统滴答定时器 SysTick
*/
void SysTick_Init(void)
{
/* SystemFrequency / 1000 1ms中断一次
* SystemFrequency / 100000 10us中断一次
* SystemFrequency / 1000000 1us中断一次
*/
// if (SysTick_Config(SystemFrequency / 100000)) // ST3.0.0库版本
if (SysTick_Config(SystemCoreClock / 1000000)) // ST3.5.0库版本
{
/* Capture error */
while (1);
}
/* 关闭滴答定时器 */
SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;
}
/*---------------------------------------------------------------------
* us延时程序,10us为一个单位
* Delay_us( 1 ) 实现的延时为 1 * 10us = 10us
*/
void delay(__IO u32 nTime)
{
TimingDelay = nTime;
/* 使能滴答定时器 */
SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;
while(TimingDelay != 0);
}
/*---------------------------------------------------------------------
* 获取节拍程序
* 在 SysTick 中断函数 SysTick_Handler()调用
*/
void TimingDelay_Decrement(void)
{
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
/*********************************************************************************/
标签:
原文地址:http://www.cnblogs.com/BlogsOfLei/p/5768293.html