赞
踩
SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是一个 24bit的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环往复。
因为 SysTick 是属于 CM3 内核的外设,所以所有基于 CM3 内核的单片机都具有这个系统定时器,使得软件在 CM3 单片机中可以很容易的移植。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。
- //时钟初始化配置
- void SysTick_Init(void)
- {
- /* SystemFrequency / 1000 1ms中断一次
- * SystemFrequency / 100000 10us中断一次
- * SystemFrequency / 1000000 1us中断一次
- */
- if (HAL_SYSTICK_Config(SystemCoreClock / 1000))
- {
- /* Capture error */
- while (1);
- }
- }
- //延时函数
- void Delay_us(__IO u32 nTime)
- {
- TimingDelay = nTime;
-
- while(TimingDelay != 0);
- }
- //中断调用函数
- void TimingDelay_Decrement(void)
- {
- if (TimingDelay != 0x00)
- {
- TimingDelay--;
- }
- }
- //中断函数
- void SysTick_Handler(void)
- {
- HAL_IncTick();
- TimingDelay_Decrement();
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。