57 /* 1.2、设置 pll1_main_clk 为 1056MHz,也就是 528*2=1056MHZ,
58
*
因为
pll1_sw_clk
进
ARM
内核的时候会被二分频!
59
*
配置
CCM_ANLOG->PLL_ARM
寄存器
60
* bit13: 1
使能时钟输出
61
* bit[6:0]: 88,
由公式:
Fout = Fin * div_select / 2.0
,
62
* 1056=24*div_select/2.0,
得出:
div_select=88
。
63
*/
64 CCM_ANALOG->PLL_ARM = (1 << 13) | ((88 << 0) & 0X7F);
-----------------------------------------------------------------------------------------------
正点原子的驱动开发指南,在第16章的例程中的设置ARM主频这一处 CCM_ANALOG
->
PLL_ARM
= (
1
<<
13
) | ((
88
<<
0
) &
0X7F
) ;
(1 << 13) | ((88 << 0) & 0X7F) 这个值是直接赋给 CCM_ANALOG->PLL_ARM 寄存器的,我的疑问是这样不是会影响其他位吗?
后面我用自己的方式进行赋值(没有影响到其他位),并且把
101 | CCM->CBCDR &= ~(7 << 10);/* CBCDR 的 AHB_PODF 清零 */ |
102 CCM->CBCDR |= 2 << 10; /* AHB_PODF 3 分频, AHB_CLK_ROOT=132MHz */
103 while(CCM->CDHIPR & (1 << 1));/* 等待握手完成 */
这一段也加上了(例程中这一段是加了#if 0 和#endif ,这一段是忽略了的),下载验证后,并没有出现例程中灯不闪的现象(说明加上这一段没问题)。