程序中的设置如下:
RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus == SUCCESS) { RCC_HCLKConfig(RCC_SYSCLK_Div1); RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_ADCCLKConfig(RCC_PCLK2_Div6); RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); RCC_PLLCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) { } RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); while(RCC_GetSYSCLKSource() != 0x08) { } 将HSE作为PLL输入,倍频后作为系统时钟,结果用发光二极管的闪烁来显示.以上程序就是例程提供的.
但程序运行后,我修改了PLL的倍频系数,但发光二极管的闪烁频率未变,应该是HSE未起作用,而系统将HSI作为了系统时钟. 我加了一句: while(HSEStartUpStatus != SUCCESS) { } 结果程序"陷"在这里了(发光二极管没有亮的),所以肯定HSE未起作用.
不知道咋回事,是硬件的问题还是软件的问题?
请高手指点一些经验(设置的,调试的...).
|