HAL库SYSTICK设置问题

2019-07-14 17:11发布

HAL库的例程中是先调用HAL_Init()这个函数,然后调用SystemClock_Config(),但是Systick的配置是在HAL_Init()中做的,然后在用SystemColck_Config()配置时钟,不是会导致SysTick()实际的时钟频率和配置的时钟频率不一致的情况吗
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
youxi8745
1楼-- · 2019-07-14 23:24
貌似没太懂具体意思
TOPCB
2楼-- · 2019-07-15 01:48
不怎么用这个库,启动时通过SystemInit已经初始化了系统时钟,但是后面为什么还要初始化,我也不太明白。还得先了解一下这个CM怎么用。
dingyang598
3楼-- · 2019-07-15 03:32
youxi8745 发表于 2018-10-1 19:11
貌似没太懂具体意思

HAL_Init()已经初始化了SysTick的时钟源的频率,再用SystemClock_Config()初始化系统时钟后,那么SysTick实际的时钟源的频率不就可能发生变化吗,那么和开始用HAL_Init()初始化时所用的时钟频率是不同的了,那么后面再用库中提供的延时函数不就不准确了吗
dingyang598
4楼-- · 2019-07-15 05:04
TOPCB 发表于 2018-10-1 19:16
不怎么用这个库,启动时通过SystemInit已经初始化了系统时钟,但是后面为什么还要初始化,我也不太明白。还得先了解一下这个CM怎么用。

启动初始化的时钟是72MHz未必满足要求,后面初始化的才是自己需要的时钟频率
亲爱的娜娜
5楼-- · 2019-07-15 08:24
 精彩回答 2  元偷偷看……
dingyang598
6楼-- · 2019-07-15 13:30
亲爱的娜娜 发表于 2018-10-1 20:02
在SystemClock_Config();函数中调用了HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2)
而HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2)又调用了  HAL_InitTick (TICK_INT_PRIORITY);重新获得了新的系统时钟。  HAL_InitTick (TICK_INT_PRIORITY);函数中有得到系统时钟的函数HAL_RCC_GetHCLKFre ...

多谢解惑,我看的不够仔细,呵呵

一周热门 更多>