完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
HAL库的例程中是先调用HAL_Init()这个函数,然后调用SystemClock_Config(),但是Systick的配置是在HAL_Init()中做的,然后在用SystemColck_Config()配置时钟,不是会导致SysTick()实际的时钟频率和配置的时钟频率不一致的情况吗
|
|
相关推荐
11个回答
|
|
是不是在设置完时钟后还需要重新设置一下SysTick
|
|
|
|
貌似没太懂具体意思
|
|
|
|
不怎么用这个库,启动时通过SystemInit已经初始化了系统时钟,但是后面为什么还要初始化,我也不太明白。还得先了解一下这个CM怎么用。
|
|
|
|
HAL_Init()已经初始化了SysTick的时钟源的频率,再用SystemClock_Config()初始化系统时钟后,那么SysTick实际的时钟源的频率不就可能发生变化吗,那么和开始用HAL_Init()初始化时所用的时钟频率是不同的了,那么后面再用库中提供的延时函数不就不准确了吗 |
|
|
|
启动初始化的时钟是72MHz未必满足要求,后面初始化的才是自己需要的时钟频率 |
|
|
|
在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也重新获得了新的系统时钟。 |
|
|
|
亲爱的娜娜 发表于 2018-10-1 20:02 多谢解惑,我看的不够仔细,呵呵 |
|
|
|
dingyang598 发表于 2018-10-1 19:33 你还是仔细看下代码吧,哈哈哈 |
|
|
|
|
|
|
|
我也不明白,学习
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2162 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1997 浏览 3 评论
4593 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2140 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2659 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 15:24 , Processed in 0.619588 second(s), Total 59, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号