systick 为什么选择SysTick_CLKSource_HCLK和SysTick_CLKSource_HCLK_Div8, 延时都是1秒
时间: 2023-07-31 11:10:12 浏览: 90
SysTick是STM32的一个定时器模块,可以用于延时。在STM32中,SysTick使用的时钟源可以是HCLK或HCLK/8。选择不同的时钟源,会影响SysTick的计数速度和延时时间。
当选择SysTick的时钟源为HCLK时,SysTick计数器的时钟频率等于HCLK的频率,即SysTick计数器每秒钟递增的次数等于HCLK的频率。因此,如果要延时1秒,就需要将SysTick的计数值设置为HCLK的频率减1。
当选择SysTick的时钟源为HCLK/8时,SysTick计数器的时钟频率等于HCLK/8的频率,即SysTick计数器每秒钟递增的次数等于HCLK/8的频率。因此,如果要延时1秒,就需要将SysTick的计数值设置为HCLK/8的频率减1。
从上面可以看出,选择不同的时钟源,需要设置不同的计数值才能延时相同的时间。如果选择HCLK/8作为时钟源,可以把SysTick计数器的计数范围缩小8倍,从而减少了计数器的位数,这样可以减少对内存的占用,因此在一些情况下选择HCLK/8作为SysTick的时钟源可以更加灵活和高效。
相关问题
SysTick_CLKSource_HCLK_Div8
SysTick_CLKSource_HCLK_Div8是STM32微控制器中的一个系统定时器(SysTick)的时钟源选项。SysTick定时器是一个24位的递减计数器,用于提供精确的时间基准和延时功能。
在STM32微控制器中,SysTick定时器的时钟源可以选择为HCLK(系统时钟)或者HCLK/8。其中,HCLK是微控制器的主时钟,它的频率由外部晶振或者内部时钟源提供。
当选择SysTick_CLKSource_HCLK_Div8作为时钟源时,SysTick定时器的时钟频率将为HCLK/8。这意味着SysTick定时器的计数速度将变慢,每个计数周期需要8个系统时钟周期。
通过选择不同的时钟源,可以根据具体需求来调整SysTick定时器的计数速度和精度。选择HCLK/8作为时钟源可以降低SysTick定时器的计数速度,适用于一些低功耗应用场景或者需要较长延时的情况。
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK );
`SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK)`是一个函数调用,用于配置SysTick定时器的时钟源为HCLK(即系统时钟)。
在Cortex-M系列微控制器中,SysTick定时器是一个系统级定时器,用于提供基本的延时功能。它可以通过设置不同的时钟源来满足不同的需求。
函数`SysTick_CLKSourceConfig`用于配置SysTick定时器的时钟源。参数`SysTick_CLKSource_HCLK`表示将时钟源设置为HCLK,即使用系统时钟作为定时器的时钟源。
通过将定时器的时钟源设置为HCLK,可以确保定时器的计数频率与系统时钟频率相同,从而实现准确的延时功能。
需要注意的是,该函数调用前需要先使能SysTick定时器,并根据实际需求进行相应的配置。