我正在为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 clk在内部时钟中尽可能高。 (根据数据表,我认为它得到了支持,但我不知道怎么做?)
任何人都可以解释或任何代码参考,非常有必要。
答案 0 :(得分:1)
通过这样做来修复它
#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
....