-
SysTick定时器是Cortex m3的核内外设
- SysTick的时钟源
- 有两个可选,分别是外部时钟(external clock)和处理器时钟 (processor clock),通过SysTick Control and Status Register(时钟控制和状态寄存器)的CLKSOURCE[2bit]位进行配置。使用了m3内核的不同芯片其时钟设计可能不同,STM32F103此处的两个时钟对应HCLK/8(STM32F103芯片时钟源设计中,使用HCLK8分频输入至Cortex m3作为SysTick的其中一个时钟源)及FCLK(与HCLK同源)
SysTick Control and Status Register
misc.c中用于配置SysTick时钟源的函数:
/**
* @brief Configures the SysTick clock source.
* @param SysTick_CLKSource: specifies the SysTick clock source.
* This parameter can be one of the following values:
* @arg SysTick_CLKSource_HCLK_Div8: AHB clock divided by 8 selected as SysTick clock source.
* @arg SysTick_CLKSource_HCLK: AHB clock selected as SysTick clock source.
* @retval None
*/
void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)
{
/* Check the parameters */
assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));
if (SysTick_CLKSource == SysTick_CLKSource_HCLK)
{
SysTick->CTRL |= SysTick_CLKSource_HCLK; //0x00000004
}
else
{
SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8; //FFFFFFFB
}
}
- Keil Debug模式下查看SysTick Control and Status Register(时钟控制和状态寄存器)的方法