初级会员

- 积分
- 59
- 金钱
- 59
- 注册时间
- 2014-6-10
- 在线时间
- 0 小时
|
发表于 2014-7-11 09:52:56
|
显示全部楼层
看system_stm32f10x.c中SystemInit()里有设置默认系统时钟为72M的。
一般最好自己编写一个关于时钟的代码,参考如下:
void RCC_Config(void)
{
static volatile ErrorStatus HSEStartUpStatus = SUCCESS;
RCC_DeInit(); //默认配置SYSCLK, HCLK,  CLK2,  CLK1, 复位后就是该配置
RCC_HSEConfig(RCC_HSE_ON); //使能外部高速晶振
HSEStartUpStatus = RCC_WaitForHSEStartUp(); //等待外部高速稳定
if(HSEStartUpStatus == SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//使能flash预读取缓冲区
FLASH_SetLatency(FLASH_Latency_2); //令Flash处于等待状态,2是针对高频时钟的
RCC_HCLKConfig(RCC_SYSCLK_Div1); //HCLK = SYSCLK 设置高速总线时钟=系统时钟
RCC_PCLK2Config(RCC_HCLK_Div1); //PCLK2 = HCLK 设置低速总线2时钟=高速总线时钟
RCC_PCLK1Config(RCC_HCLK_Div2); //PCLK1 = HCLK/2 设置低速总线1的时钟=高速时钟的二分频
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //PLLCLK = 8MHz * 9 = 72 MHz 利用锁相环讲外部8Mhz晶振9倍频到72Mhz
RCC_PLLCmd(ENABLE); //使能PLL锁相环
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){} //等待锁相环输出稳定
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //将锁相环输出设置为系统时钟
while(RCC_GetSYSCLKSource() != 0x08){} //等待校验成功
}
}
USART1相关的就是PCLK2了。 |
|