STM32学习笔记—SysTick定时器

嵌入式系统 时间:2013-01-24来源:网络

void SysTick_Configuration(void)

{

/* Select AHB clock(HCLK) as SysTick clock source 设置AHB时钟为SysTick时钟*/

SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);

/* Set SysTick Priority to 3 设置SysTicks中断抢占优先级 3, 从优先级0*/

NVIC_SystemHandlerPriorityConfig(SystemHandler_SysTick, 3, 0);

/* SysTick interrupt each 1ms with HCLK equal to 72MHz 每1ms发生一次SysTick中断*/

SysTick_SetReload(72000);

/* Enable the SysTick Interrupt */

SysTick_ITConfig(ENABLE);

}

延时函数,需要延时处调用:

view plaincopy to clipboardprint?

void Delay(u32 nTime)

{

/* Enable the SysTick Counter 允许SysTick计数器*/

SysTick_CounterCmd(SysTick_Counter_Enable);

TimingDelay = nTime;

while(TimingDelay != 0)

; //等待计数至0

/* Disable the SysTick Counter 禁止SysTick计数器*/

SysTick_CounterCmd(SysTick_Counter_Disable);

/* Clear the SysTick Counter 清零SysTick计数器*/

SysTick_CounterCmd(SysTick_Counter_Clear);

}

void Delay(u32 nTime)

{

/* Enable the SysTick Counter 允许SysTick计数器*/

SysTick_CounterCmd(SysTick_Counter_Enable);

TimingDelay = nTime;

while(TimingDelay != 0)

; //等待计数至0

/* Disable the SysTick Counter 禁止SysTick计数器*/

SysTick_CounterCmd(SysTick_Counter_Disable);

/* Clear the SysTick Counter 清零SysTick计数器*/

SysTick_CounterCmd(SysTick_Counter_Clear);

}

中断函数,定时器减至零时调用,放在stm32f10x_it.c文件中

view plaincopy to clipboardprint?

void SysTickHandler(void)

{

TimingDelay--;

}

1 2

关键词: STM32 学习笔记 SysTick定时器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版