我正在为 FRDM-KL46Z 平台开发 IAR 编译器。
我想使用内部时钟并将其设置为 48 MHz(或尽可能最大值)。
到目前为止,我已经在提供的示例 sysinit.c
文件和函数 sysinit()
中完成了以下步骤。
#define NO_PLL_INIT
#if defined(NO_PLL_INIT)
mcg_clk_hz = 48000000; // It only works on 21000000 Hz, otherwise I get garbage prints on UART0.
SIM_SOPT2 &= ~SIM_SOPT_PLLFLLSEL_MASK
uart0_clk_khz = (mcg_clk_hz) / 1000;
#else
....
在 FEI 模式下,如果我使用 FBI 模式或 BLPI 模式,我获得的 MCU 时钟会非常少。 我希望 MCU clk 在内部时钟中尽可能高。 (根据数据表我认为它是支持的,但我不知道如何?)
任何人都可以解释一下或任何代码引用,非常感谢。
最佳答案
通过这样做修复了它
#define NO_PLL_INIT
#if defined(NO_PLL_INIT)
MCG_C4 |= (MCG_C4_DRST_DRS(1) | MCG_C4_DMX32_MASK);
mcg_clk_hz = 48000000;
SIM_SOPT2 &= ~SIM_SOPT_PLLFLLSEL_MASK
uart0_clk_khz = (mcg_clk_hz) / 1000;
#else
....
关于c - FRDM-KL46Z 内部引用时钟为 48 MHz?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24260806/