SysTick_Config(SystemCoreClock);
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
请问为什么要先调用第一个函数,再调用第二个函数呢,如果反过来会怎么样?
这两个函数是 STM32 微控制器的内核函数,用于配置 SysTick 定时器。
SysTick_Config() 函数用于配置 SysTick 定时器的计数周期,其中 SystemCoreClock 是定义的系统时钟频率,用于确定定时器计数周期。这个函数在初始化 SysTick 定时器之前必须被调用。
SysTick_CLKSourceConfig() 函数用于配置 SysTick 定时器的时钟源,其中 SysTick_CLKSource_HCLK 指定了时钟源为主时钟(HCLK)。这个函数在初始化 SysTick 定时器之后必须被调用。
如果将两个函数的顺序颠倒,那么在配置时钟源之前就已经初始化了 SysTick 定时器,这可能导致 SysTick 定时器的配置无效。因此,在使用 SysTick 定时器之前,必须按照正确的顺序调用这两个函数。
总之一句话,人家开发文档就是这么定义的,比这写就完事儿了。
第一个:用于配置SysTick定时器的重载值,即设置定时器计数到多少次会发生中断。这个函数需要把系统时钟作为参数传入,以便正确计算重载值。
第二个:用于配置SysTick定时器的时钟源。这里的时钟源是系统主频。
如果把调用顺序反过来,在 SysTick_CLKSourceConfig 函数执行前定时器的重载值尚未计算,因此定时器可能工作不正常。先配置定时器的时钟源会影响定时器的重载值的计算,从而导致定时器的工作不正确。