void SysTick_Init(u8 SYSCLK) { SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); fac_us=SYSCLK/8; fac_ms=(u16)fac_us*1000; }
时间: 2023-07-15 09:12:54 浏览: 143
这是一段使用 SysTick 定时器初始化的代码,用于生成微秒和毫秒级的延时。其中,SYSCLK 是系统时钟频率,fac_us 和 fac_ms 是用于计算微秒和毫秒延时的系数。
在函数中,首先使用 SysTick_CLKSourceConfig 函数设置 SysTick 定时器的时钟源为 HCLK/8,即系统时钟的 1/8。然后,根据系统时钟频率计算出微秒和毫秒延时的系数 fac_us 和 fac_ms。
该函数可能是嵌入式系统中的一部分,用于实现精确的延时控制。
相关问题
void delay_init(u8 SYSCLK) { SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//选择48M时钟 HCLK/8 // SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);//选择8M时钟 HCLK fac_us=SYSCLK/8; //为系统时钟的1/8 fac_ms=(int16_t)fac_us*1000;//每个ms需要的systick时钟数 }
这段代码是用来初始化延时函数的。其中,`SYSCLK` 是系统时钟频率,通过该参数计算出每个微秒需要的 SysTick 时钟数 `fac_us`,以及每个毫秒需要的 SysTick 时钟数 `fac_ms`。在该函数中,通过设置 SysTick 时钟源为 HCLK/8,选择了 48MHz 的时钟源。这个函数的作用是为后面的延时函数提供时钟源。
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK );
`SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK)`是一个函数调用,用于配置SysTick定时器的时钟源为HCLK(即系统时钟)。
在Cortex-M系列微控制器中,SysTick定时器是一个系统级定时器,用于提供基本的延时功能。它可以通过设置不同的时钟源来满足不同的需求。
函数`SysTick_CLKSourceConfig`用于配置SysTick定时器的时钟源。参数`SysTick_CLKSource_HCLK`表示将时钟源设置为HCLK,即使用系统时钟作为定时器的时钟源。
通过将定时器的时钟源设置为HCLK,可以确保定时器的计数频率与系统时钟频率相同,从而实现准确的延时功能。
需要注意的是,该函数调用前需要先使能SysTick定时器,并根据实际需求进行相应的配置。
阅读全文