STM32 内部时钟

Posted

技术标签:

【中文标题】STM32 内部时钟【英文标题】:STM32 internal clocks 【发布时间】:2017-03-06 00:40:42 【问题描述】:

我对我的 STM32F7 设备(来自 STMicroelectronics 的 Cortex-M7 微控制器)上的时钟系统感到困惑。参考手册没有充分阐明这些时钟之间的差异:

SYSCLK HCLK FCLK

参考手册在章节> “RCC 以除以8 的AHB 时钟(HCLK) 馈送Cortex 系统定时器(SysTick) 的外部时钟。” 该声明与 CubeMX 的数据相矛盾。请注意,在 CubeMX 中,我可以选择自己的预分频器从 HCLK 到“Cortex System Timer”。不一定要除以 8。

【问题讨论】:

请注意 SYSCLK != SysTick。 SYSCLK 是“系统时钟”,由系统时钟生成单元 (SCGU) 生成,用于驱动 CPU 和总线。 SysTick 是 ARMv7-M 标准的“系统滴答”计时器,通常用作实时操作系统中的时基。 有趣的@claymation,感谢您的评论:-) 【参考方案1】:

通常HCLKFCLK 之间的唯一区别是:

HCLK 是主 CPU 时钟,也用于 AHB 接口。可以在 CPU 休眠时进行门控(例如 WFI) FCLKHCLK 同步,但在 CPU 进入睡眠状态时不会被门控,因此它可以在中断时唤醒。

【讨论】:

谢谢先生。 “门控”是什么意思? SYSCLK 只是一个中间时钟信号,HCLK 和 FCLK 是从中派生出来的,而不是自己实际使用的吗? 是的,这就是我从图中所理解的;所谓门控,是指在不需要时可以停止时钟以节省电量。 门控意味着它通过一个门。特别是与门,查看 RCC 寄存器中的所有时钟使能位,这些单独的外围设备/逻辑块的各个位基本上与时钟进行与运算(有时反相是与运算)。停止逻辑块上的时钟边沿可以节省大量功率,并且在“微控制器”中很常见。很难将 cortex-m7 称为微控制器,但它确实属于这一类。 注意在复位中保持某些东西并且仍然启用时钟并不一定意味着低功耗或最低功耗,因此时钟门可以防止时钟通过该块级联可能翻转组合门的实现(并消耗功率) )。 谢谢@dwelch,这真的澄清了很多:-)

以上是关于STM32 内部时钟的主要内容,如果未能解决你的问题,请参考以下文章

STM32内部时钟设置-寄存器版

用stm32设计实时时钟用内部rtc好还是时钟芯片好

STM32F103C8T6使用内部时钟作为系统时钟

stm32为啥要配置系统时钟

STM32F103想用内部时钟HSI做为系统时钟,怎么配置成36M

STM32:SysTick定时器