2019-07-20 22:54发布
Polychromatic 发表于 2019-7-6 16:19 HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/configTICK_RATE_HZ); HAL_SYSTICK_CLKSourceConfig(SYSTI ...
cyj521 发表于 2019-7-9 08:45 /**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq() ...
cyj521 发表于 2019-7-9 10:13 那这样改了,使用CUBE生成代码又变回来了,怎么办?
最多设置5个标签!
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
configTICK_RATE_HZ 默认1000
改为 1就是1S了
/**Configure the Systick interrupt time
*/
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
/**Configure the Systick
*/
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
上面是工程自动生成的,如果把1000改成1,重新生成后又自动改回来了
而且CUBE里面有个Timebase source选项,默认就是SysTick且不能修改,手动把1000改成1会有别的问题吗
Timebase source 就是下面的HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
SYSTICK_CLKSOURCE_HCLK
SYSTICK_CLKSOURCE_HCLK_DIV8
这样吧,HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8);
如果你的主频是 72Mhz,那么分频后就是9Mhz,然后要定时1S,就只需要systick初值为 9000000
因为看了systick的 最大值是 0xFFFFFFH所以,如果你CPU的频率大于了这个值,不能直接 把主频赋值给systick。
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/8);
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8);
在对着改一次。HAL_Init里面
一周热门 更多>