STM32F429 systick定时器的疑问,为啥没见到加载值?

2019-07-20 16:46发布

[mw_shl_code=c,true]void delay_init(u8 SYSCLK)
{
  HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//SysTickÆμÂêÎaHCLK
  fac_us=SYSCLK;                       
}                [/mw_shl_code]
[mw_shl_code=c,true]void delay_us(u32 nus)
{               
  u32 ticks;
  u32 told,tnow,tcnt=0;
  u32 reload=SysTick->LOAD;
  ticks=nus*fac_us;
  told=SysTick->VAL;
while(1)
{
  tnow=SysTick->VAL;       
  if(tnow!=told)
   {            
     if(tnow<told)tcnt+=told-tnow;
    else tcnt+=reload-tnow+told;            
    told=tnow;
    if(tcnt>=ticks)break;
    }   
}
}

void delay_ms(u16 nms)
{
u32 i;
for(i=0;i<nms;i++) delay_us(1000);
}[/mw_shl_code]       

上面的代码和之前系列的代码思路不一样,
load值在哪里给的寄存器?       
或者怎么确定LOAD值是多少?
       

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。