//打开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); 怎么启动不了? |
使用寄存器操作的话就可以,使用库函数操作就不行。有什么问题呢? |
深入到库函数中看是否和寄存器一致? |
|
看现成的例程,对照一下 |