HAL库配置系统滴答时钟问题

2019-07-14 15:20发布

对于F7 的HAL库,其初始化流程都是这样的:
  /* Enable the CPU Cache */
  CPU_CACHE_Enable();

  /* Init HAL */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();


在HAL_Init()函数中初始化了系统滴答时钟,但是这个时候SystemCoreClock 还没经过 SystemClock_Config();配置,也就是说这个时候SystemCoreClock = 16000000;,在经过SystemClock_Config();配置成其他时钟后(比如200或216M),系统滴答时钟是不准的。还需要使用Systick_Config()配置一次才能正常,但这一步很多人会忘记的,以为前面已经配置了,这个小问题再次提醒大家。

还有一个问题是:想配置系统时钟1s一次中断,配置系统时钟源为8分频后,有问题了
比如如下配置后,不是1ms定时周期了
void Sys_Init(void)
{
   HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8);
   SysTick_Config(SystemCoreClock /8/1000);
}
这是什么问题呢?求指教?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。