高速外设默认使用HPLL时钟,只使能HPLL2时钟的话,切换到HPLL2前要先使能HPLL,切换完再关闭HPLL。
可参考实验箱例程包里面的PLL时钟配置过程:
- WTST = 2; //通过WTST增加等待时钟控制Flash读取速度在33MHz以内, 主时钟:480MHz/2/3=80MHz, 读Flash速度:80MHz/(1+2)=26.7MHz
-
- HPLLCR |= 0x80; //使能HPLL(高速外设默认使用HPLL时钟,切换到HPLL2前要先使能HPLL,切换完再关闭HPLL)
-
- //首先需要将HIRC主频调节到48MHz
- HPLL2CR &= ~0x10; //选择HPLL2输入时钟源为HIRC
- // HPLL2CR |= 0x10; //选择HPLL2输入时钟源为IRCM
- HPLL2PDIV = 8; //设置HPLL2输入时钟预分频为8(HPLL输入频率必须为6MHz)
- // HPLL2CR |= 0x00; //HPLL2=6MHz*52=312MHz
- // HPLL2CR |= 0x01; //HPLL2=6MHz*54=324MHz
- // HPLL2CR |= 0x02; //HPLL2=6MHz*56=336MHz
- // HPLL2CR |= 0x03; //HPLL2=6MHz*58=348MHz
- // HPLL2CR |= 0x04; //HPLL2=6MHz*60=360MHz
- // HPLL2CR |= 0x05; //HPLL2=6MHz*62=372MHz
- // HPLL2CR |= 0x06; //HPLL2=6MHz*64=384MHz
- // HPLL2CR |= 0x07; //HPLL2=6MHz*66=396MHz
- // HPLL2CR |= 0x08; //HPLL2=6MHz*68=408MHz
- // HPLL2CR |= 0x09; //HPLL2=6MHz*70=420MHz
- // HPLL2CR |= 0x0a; //HPLL2=6MHz*72=432MHz
- // HPLL2CR |= 0x0b; //HPLL2=6MHz*74=444MHz
- // HPLL2CR |= 0x0c; //HPLL2=6MHz*76=456MHz
- // HPLL2CR |= 0x0d; //HPLL2=6MHz*78=468MHz
- HPLL2CR |= 0x0e; //HPLL2=6MHz*80=480MHz
- // HPLL2CR |= 0x0f; //HPLL2=6MHz*82=492MHz
- HPLL2CR |= 0x20; //高速外设时钟选择 HPLL2/2
- HPLL2CR |= 0x80; //使能HPLL2
-
- HPLLCR &= ~0x80; //关闭HPLL(高速外设默认使用HPLL时钟,切换到HPLL2前要先使能HPLL,切换完再关闭HPLL)
-
- CLKDIV = 3; //系统时钟 = 主时钟源/2 = HPLL2/2/3 = 80MHz
- CLKSEL = 0x08; //选择HPLL2/2作为主时钟源
复制代码
|