你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HAL库SYSTICK设置问题

[复制链接]
黑皮男 提问时间:2015-6-8 13:55 /
HAL库的例程中是先调用HAL_Init()这个函数,然后调用SystemClock_Config(),但是SysTick的配置是在HAL_Init()中做的,然后在用SystemColck_Config()配置时钟,不是会导致SysTick()实际的时钟频率和配置的时钟频率不一致的情况吗
收藏 2 评论12 发布时间:2015-6-8 13:55

举报

12个回答
黑皮男 回答时间:2015-6-8 14:17:25
是不是在设置完时钟后还需要重新设置一下SysTick
wyxy163@126.com 回答时间:2015-6-8 14:31:49
提示: 作者被禁止或删除 内容自动屏蔽
废鱼 回答时间:2015-6-8 14:53:56
不怎么用这个库,启动时通过SystemInit已经初始化了系统时钟,但是后面为什么还要初始化,我也不太明白。还得先了解一下这个CM怎么用。
黑皮男 回答时间:2015-6-8 15:25:25
数码小叶 发表于 2015-6-8 14:31
貌似没太懂具体意思

HAL_Init()已经初始化了SysTick的时钟源的频率,再用SystemClock_Config()初始化系统时钟后,那么SysTick实际的时钟源的频率不就可能发生变化吗,那么和开始用HAL_Init()初始化时所用的时钟频率是不同的了,那么后面再用库中提供的延时函数不就不准确了吗
黑皮男 回答时间:2015-6-8 15:26:46
安 发表于 2015-6-8 14:53
不怎么用这个库,启动时通过SystemInit已经初始化了系统时钟,但是后面为什么还要初始化,我也不太明白。还 ...

启动初始化的时钟是72MHz未必满足要求,后面初始化的才是自己需要的时钟频率
creep 回答时间:2015-6-8 15:34:21
在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_GetHCLKFreq(),
所以即使修改了系统时钟,但是systick也重新获得了新的系统时钟。
黑皮男 回答时间:2015-6-8 15:58:27
creep 发表于 2015-6-8 15:34
在SystemClock_Config();函数中调用了HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2)
而HAL_RC ...

多谢解惑,我看的不够仔细,呵呵
wyxy163@126.com 回答时间:2015-6-9 19:33:47
提示: 作者被禁止或删除 内容自动屏蔽
黑皮男 回答时间:2015-6-10 08:14:30
数码小叶 发表于 2015-6-9 19:33
你还是仔细看下代码吧,哈哈哈

多谢楼主指点,现已知晓
HenryChen 回答时间:2015-6-10 09:35:44
我也不明白,学习
黑皮男 回答时间:2015-6-10 10:05:57
HenryChen 发表于 2015-6-10 09:35
我也不明白,学习

前面有人解释
Glenxu 回答时间:2020-4-22 09:21:29
这个可以根据需要随时重新定义,后修改为准

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版