疑问:Systick 时钟源设置为 8 分频后不能工作?!
其实,这个问题我觉得是一个挺尴尬的事情。貌似官方也没有给出来具体的原因,这里版主就全当是硬件设计的bug吧!
但官方给出来了workaround的办法——不使用8分频即可!
呵呵~~
其官方的库函数也做了一定的“处理”:将8分频的参数给注释掉了。
所以,版主在这里提醒大家,不要配置systick的8分频时钟。因为使用库函数不会配置,还会导致你的程序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 AHB clock selected as SysTick clock source. */ 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; } // else // { // SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8; // } }