您的位置 首页 培训

STM32 SYSTICK

voidSysTick_Config(void);SysTick定时器配置voidDelay_Ms(u32);定时时间配置voidvoidSysTickHandler(void);中断定时时间处理函数

voidSysTick_Config(void);//SysTick守时器装备

voidDelay_Ms(u32);//守时时刻装备
voidvoidSysTickHandler(void);//中止守时时刻处理函数
staticvu32TimingDelay;//中止处理函数


//SysTick设置
voidSysTick_Config(void)
{

SysTick_CounterCmd(SysTick_Counter_Disable);


SysTick_ITConfig(DISABLE);


SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);


SysTick_SetReload(9000);
//体系嘀嗒校准值固定到9000,当体系嘀嗒时钟设定为9兆赫,发生1ms时基。



SysTick_ITConfig(ENABLE);


}


voidDelay_Ms(u32nTime)
{

SysTick_CounterCmd(SysTick_Counter_Enable);

TimingDelay=nTime;

while(TimingDelay!=0)
{
}


SysTick_CounterCmd(SysTick_Counter_Disable);

SysTick_CounterCmd(SysTick_Counter_Clear);

}


voidSysTickHandler(void)
{
if(TimingDelay!=0x00)
{
TimingDelay–;
}
}
这儿一切运用的都是在有stm32f10x_systick.c这个文件的时分,这个是2.0中才有的文件,3.0中运用并不是这样运用的@!

在这儿阐明一下的是,有必要要留意,systick和一般的中止相同,当计数器溢出时就会发生中止,有必要要再中止处理函数中处理,可是没有通过NVIC的操控,这个是需求留意的,没有运用NVIC装备systick。

其间systick反常,反常号15,这个守时的反常的主要功能用于操作体系供给时钟信号。

可是当发生稳定的systick中止频率:最简略的作法便是:直接把TENMS的值写入重装载寄存器,这样一来,只需没打破体系极限,就能做到每10ms来一次systick反常,假如需求其他的systick反常周期,则能够依据TENMS的值加以份额核算,只不过,在少量情况下,CM3芯片或许无法精确地供给TENMS的值(如,CM3的叫转输入信号被拉低)。

Systick守时器除了能服务于操作体系之外,还能用于其他意图:如作为一个闹钟,用于丈量时刻等。要留意的是,当处理器在调试器材被喊停hatl时,则systick守时器亦将暂停运作。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/260781.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部