新手上路 
 
	- 积分
 - 24
 
        - 金钱
 - 24 
 
       - 注册时间
 - 2020-4-27
 
      - 在线时间
 - 6 小时
 
 
 
 | 
 
1金钱 
按照视频教程设置了主频时钟到696M,烧录进去led闪灯频率没有明显改变,为了防止我写错程序。我把例程源码里面的bsp_clk.c里面的全部代码copy进去,然后修改寄存器值(58倍,一倍频)发现闪灯频率确实变快了一倍左右。 
 
然后神奇的事情发生了,我把程序里面后面设置其他的时钟代码删掉,只留下了设置主频的代码,再烧进去,发现闪灯频率又变慢了,改回所有的代码,又正常了。 
 
求解啊! 
 
下面是编写的程序: 
void imx6u_clkinit(void) 
{ 
        if((((CCM->CCSR) >> 2) & 0x1 ) == 0)         /* 当前pll1_sw_clk使用的pll1_main_clk*/ 
        {         
                CCM->CCSR &= ~(1 << 8);                                /* 配置step_clk时钟源为24MH OSC */         
                CCM->CCSR |= (1 << 2);                                /* 配置pll1_sw_clk时钟源为step_clk */ 
        } 
 
        /* 1.2、设置pll1_main_clk为1056MHz,也就是528*2=1056MHZ, 
         *      因为pll1_sw_clk进ARM内核的时候会被二分频! 
         *      配置CCM_ANLOG->PLL_ARM寄存器 
         *      bit13: 1 使能时钟输出 
         *      bit[6:0]: 88, 由公式:Fout = Fin * div_select / 2.0,1056=24*div_select/2.0, 
         *                              得出:div_select=    88   
         */ 
        CCM_ANALOG->PLL_ARM = (1 << 13) | ((58 << 0) & 0X7F);         /* 配置pll1_main_clk=1056MHz */ 
        CCM->CCSR &= ~(1 << 2);                                                                        /* 将pll_sw_clk时钟重新切换回pll1_main_clk */ 
        CCM->CACRR = 0;                                                                                        /* ARM内核时钟为pll1_sw_clk/2=1056/2=528Mhz */ 
} 
 
 
 
 |   
 
 
 
 
 
 |