490353119 发表于 2015-4-8 14:57:13

关于开启HSI作为SYSCLK

                //打开HSI晶体
                RCC_HSICmd(ENABLE);   
                //等待HSI晶体准备就绪即稳定才可以作为系统时钟
                while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)==RESET);
               
                //配置AHB CLOCK(HCLK)的值HCLK=SYSCLK=168MHZ
                RCC_HCLKConfig(RCC_SYSCLK_Div1);   
                //配置APB2 CLOCK的值(PCLK2) PCLK2=HCLK/2=84MHZ
                RCC_PCLK2Config(RCC_HCLK_Div2);
                //配置APB1 CLOCK的值(PCLK1) PCLK1=HCLK/4=42MHZ
                RCC_PCLK1Config (RCC_HCLK_Div4);
               
                //配置PLL
                RCC_PLLConfig(RCC_PLLCFGR_PLLSRC_HSI,//HSI作为PLL的时钟来源               
                PLL_M_HSI,                        //PLLM=16,即Fvco clk input=1MHZ
                PLL_N,                            //PLLN=336,即Fvco clk output=336MHZ
                PLL_P,                            //PLLP=2即PLLCLK=336/2=168MHZ
                PLL_Q);                           //PLLQ=7即Fusb clk=336/7=48MHZ
                //打开PLL时钟
                RCC_PLLCmd(ENABLE);
               
                //等待PLL时钟就绪稳定
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
               
                //选择PLLCLK作为系统时钟
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

                //等待PLLCLK作为系统时钟
                while(RCC_GetSYSCLKSource()!=0x08);
               
               // Enable Prefetch Buffer
                FLASH_PrefetchBufferCmd(ENABLE);
       // Flash 2 wait state
                FLASH_SetLatency(FLASH_Latency_5);
                //Enables or disables the Instruction Cache feature
          FLASH_InstructionCacheCmd(ENABLE);
怎么启动不了?

490353119 发表于 2015-4-8 14:58:02

使用寄存器操作的话就可以,使用库函数操作就不行。有什么问题呢?

moyanming2013 发表于 2015-4-8 16:39:11

深入到库函数中看是否和寄存器一致?

拼命三郎 发表于 2015-4-8 19:49:15

wambob 发表于 2015-4-9 14:04:28

看现成的例程,对照一下
页: [1]
查看完整版本: 关于开启HSI作为SYSCLK