0

我试图了解内部时钟上的计时器是如何工作的。我在下面附上了我的 CubeMX 配置。

目前,我已将主时钟设置为 480 MHz,这是该 STM32H743ZI 芯片的最大值。我正在使用 TIM 2,所以我正在查看 APB1。

从时钟树中,我看到定时器时钟当前为 240 MHz,外围时钟为 120 MHz。

  1. 我的第一个问题是,为什么它使用 120MHz,它清楚地表示“APB1 上的定时器时钟”为“240MHz”?我已经用示波器验证了频率。

这是一个很长的镜头,但根据我读到的,这个芯片的最大定时器时钟是 200 MHz。所以 240 大于 200,也许芯片会自动应用 /2 分频器?我认为时钟配置树会说些什么,而不是允许应用“240 MHz”?

  1. 我的第二个问题:为了论证,假设最大定时器时钟确实是 200 MHz,我如何将 200 MHz 设置为 APB1 的时钟频率?我确信在不影响最大 MCU 时钟并将其从 480 降至 400 MHz 的情况下,没有办法达到 200 MHz?

  2. 每当我更改某些内容时,我可以相信 CubeMX 正在执行的自动预分频器/乘数调整吗?

在此处输入图像描述

4

1 回答 1

0

你是如何用示波器检查它的?是在芯片里面吗?

  1. 定时器时钟为 240MHz,连接到 APB1 的其他外设时钟为 120MHz。

根据我读到的,这个芯片的最大定时器时钟是 200 MHz。

你在哪里读到的?官方文档有不同的说法

在此处输入图像描述

  1. 我觉得这个问题没有太大意义

  2. 您会看到这些值,如果您愿意,可以手动检查它们,但在这种情况下,计算机通常比人类好。就我个人而言,我对 Cube 没有任何问题。顺便说一句,我只将它用于时钟(我懒得手动计算所有预调用器),但我以裸寄存器方式对其进行编程。

于 2020-07-22T21:17:33.323 回答