我对 STM32F7 设备(意法半导体的 Cortex-M7 微控制器)上的时钟系统感到困惑。参考手册没有充分阐明这些时钟之间的差异:
参考手册在章节 << 5.2 Clocks >> “RCC 将 AHB 时钟 (HCLK) 除以 8 提供给 Cortex 系统定时器 (SysTick) 的外部时钟。”
这一说法与 CubeMX 的数据相矛盾。请注意,在 CubeMX 中,我可以自己选择从 HCLK 到“Cortex System Timer”的预分频器。它不一定是除以 8。
通常
HCLK
和 FCLK
之间的唯一区别是:
HCLK
是主CPU时钟,也用于AHB接口。当CPU休眠时可以对其进行门控(例如WFI)FCLK
与 HCLK
同步,但在 CPU 进入睡眠状态时不被门控,以便在发生中断时可以唤醒。完整的引用(至少来自我正在看的裁判)是:
RCC 将 AHB 时钟提供给 Cortex 系统定时器 (SysTick) 的外部时钟 (HCLK) 除以 8。SysTick 可以使用该时钟或 Cortex 时钟工作 (HCLK),可在 SysTick 控制和状态寄存器中配置
诚然措辞不佳,但它所表达的只是 SysTick 提供了(“馈送”)除以 8 的 HCLK,以及未除的 HCLK。然后您可以选择应遵循哪一个 SysTick。