0
点赞
收藏
分享

微信扫一扫

STM32 SYSTICK定时

49路末班车 2022-12-21 阅读 155

SYSTICK定时寄存器

CTRL  

第16位   countflag       计时完成标志位,1为计时完成,

第2位    CLKSOURCE   时钟选择

第1位   TICKINT      SYSTICK定时器中断使能

第0位   ENABLE      SYSTICK定时器使能

LOAD

RELOAD     重装载的值,当VAL寄存器的CURRENT递减为0时,把RELOAD的值重装到CURRENT

VAL

CURRENT  递减的值,到0结束。


void sys_delay(u32 xhm)

{

u32 a;

SysTick_CLKSouurceConfig(SysTick_CLKSource_HCLK_Div8);//选择8分屏

SysTick->LOAD=xhm*9000; //计算时间,晶振跳9次等于1微秒 9000为1毫秒9000000为1S  

SysTick->VAL=0x00; //把val寄存器清零

SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;//开启定时。

do

{

 a=SysTick->CTRL;//一直检测标志位

}

while(!(a&(1<<16)));//标志位1时,取反 出循,或者把结果循环判断是否为0,1&任何数都是任何数

 SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;//停止定时

 SysTick->VAL=0x00;//把val寄存器清零

}

举报

相关推荐

0 条评论