标签:
/********************************************************************************** * 文件名 :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