stm32实现定时、延时一般通过调用CMSIS函数SysTick_Config实现。例如我们设置1ms中断如下:
/**************************************
**转载请注明:http://tedeum.iteye.com**
***************************************/
if (SysTick_Config(SystemCoreClock / 1000))
{
/* Capture error */
while (1);
}
这时,每过1ms就会调用中断,可以在中断中进行定时逻辑处理:
void SysTick_Handler(void)
{
//进行相应的定时逻辑处理
}
在此基础上,我们就可以进行延时,频率处理,计时的功能的开发:
一、延时,我们首先定义一个延时时间,然后调用延时函数后,延时时间在SysTick中断中减一,为0时跳出:
//延迟时间计数器
__IO uint32_t TimingDelay = 0;
//SysTick中断处理函数
void SysTick_Handler(void)
{
//每次SysTick中断减一
if (TimingDelay != 0x00)
{
TimingDelay--;
}
}
//延时函数