systick_config 解析

static __INLINE uint32_t SysTick_Config(uint32_t ticks)
{ 
  if (ticks > SYSTICK_MAXCOUNT)  return (1);                          

  SysTick->LOAD  =  (ticks & SYSTICK_MAXCOUNT) - 1;          
  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);     
  SysTick->VAL   =  (0x00);                                                              
  SysTick->CTRL = (1 << SYSTICK_CLKSOURCE) | (1< 
  
 
  
SysTick_Config(uint32_t ticks):设置系统嘀嗒时钟并使能中断

         在STM32中与CM3内核描述不太一样,这个时钟源有两个选择:AHB/8AHB,在该函数中是选择了HCLK(SysTick_CTRL_CLKSOURCE_Msk),所以定时时间=ticks / HCLK,当要定时10ms,而HCLK24MHz时,ticks = 10000 * 24 = 240000

         如果需要选择HCLK/8,可以直接修改这个函数,或在这个函数后跟随misc中的SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)来设置。

你可能感兴趣的:(STM32)