初级会员

- 积分
- 55
- 金钱
- 55
- 注册时间
- 2015-4-28
- 在线时间
- 1 小时
|
5金钱
我外部接的是8M的有源晶振
RCC_DeInit(); //重置默认值
RCC_HSEConfig(RCC_HSE_Bypass);
//wait for hse ready
HSEStartUpStatus = RCC_WaitForHSEStartUp();
//when hse ready
if(HSEStartUpStatus == SUCCESS)
{
//开启FLASH预读缓冲功能,加速FLASH的读取。所有程序中必须的
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
//FLASH时序延迟几个周期,等待总线同步操作。推荐按照单片机系统运行频率.
//0—24MHz时,取Latency=0;24—48MHz时,取Latency=1;48~72MHz时,取Latency=2。所有程序中必须的
FLASH_SetLatency(FLASH_Latency_2);
//HCLK configure 64M
RCC_HCLKConfig(RCC_SYSCLK_Div1);
//PCLK2 64M
RCC_PCLK2Config(RCC_HCLK_Div1);
//PCLK1 32M
RCC_PCLK1Config(RCC_HCLK_Div2);
//disable all clock interrupt
RCC->CIR = 0x00000000;
//PLL configure 8M * 8 = 64M
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_8);
//enablue the PLL
RCC_PLLCmd(ENABLE);
//wait for PLL ready
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
//select the PLL for system clk
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
// test wheather PLL output as system clk
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
1.疑问?当选择外部时钟振荡器,我知道需要等待外部晶振稳定,当我用的是外部有源晶振的时候,我配置是选择旁路,难道也要像石英晶振一样,判断起振是否稳定,类似上面的写法???
2.疑问?对于PCLK1是高速时钟,手册高速我们是不能超过36M,如果配置他为系统时钟,会有哪些影响。我有一份代码一直都是按照系统时钟运行的,所以,我也不清楚会造成什么问题? |
最佳答案
查看完整内容[请看2#楼]
1,这个倒是没测试过,按照无源晶振的配置,应该也可以用才对。你试试
2,系统时钟是HCLK,不是PCLK1,PCLK1是无法设置为系统时钟的。
|