网站开发网页权限如何控制,wordpress建网 打不开,有站点地图的网站,网站为什么具有网络营销价值系统定时器#xff08;SysTick#xff09;介绍 SysTick—系统定时器是属于 CM3 内核中的一个外设#xff0c;内嵌在 NVIC 中。系统定时器是一个 24bit的向下递减的计数器#xff0c;计数器每计数一次的时间为 1/SYSCLK#xff0c;一般我们设置系统时钟 SYSCLK等于 72M。当…系统定时器SysTick介绍 SysTick—系统定时器是属于 CM3 内核中的一个外设内嵌在 NVIC 中。系统定时器是一个 24bit的向下递减的计数器计数器每计数一次的时间为 1/SYSCLK一般我们设置系统时钟 SYSCLK等于 72M。当重装载数值寄存器的值递减到 0 的时候系统定时器就产生一次中断以此循环往复。 因为 SysTick 是属于 CM3 内核的外设所以所有基于 CM3 内核的单片机都具有这个系统定时器使得软件在 CM3 单片机中可以很容易的移植。系统定时器一般用于操作系统用于产生时基维持操作系统的心跳。
寄存器介绍
SysTick—系统定时器有 4 个寄存器简要介绍如下。在使用 SysTick 产生定时的时候只需要配置前三个寄存器最后一个校准寄存器不需要使用。 CTRL控制以及状态寄存器使用方法 LOAD重装载数值寄存器 VAL当前数值寄存器 系统定时器SysTick使用 CubeMX配置流程
1.配置好RCC时钟 2.配置好时钟来源时钟频率 3.SYS配置 4.配置SYS时钟频率 工程代码介绍 使用系统定时器实现Delay的功能 //时钟初始化配置
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();
}