标题: STM32F051使用自带时钟48M设置 [打印本页]
作者: maple100 时间: 2016-8-31 22:54
标题: STM32F051使用自带时钟48M设置
正确设置:
void RCC_Configuration(void);
void RCC_Configuration(void)
{
//éèÖÃPLLê±ÖóÔ′¼°±¶ÆμÏμêy
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);///*!< PLL input clock*12 */
//ê1ÄüPLL
RCC_PLLCmd(ENABLE);
//μè′yPLL3õê¼»ˉ3é1|
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08) //μè′yÏμí3ê±Öó3õê¼»ˉ3é1|
{
}
}
去掉外部晶振后,单片机时钟源会默认的使用内部高速RC振荡器HSI,HSI频率大约为8M,所以要想使系统获得48M的频率需要用PLL倍频后做为系统的时钟,PLL是一个锁相环,专门用来倍频或者分频的。(倍频后所得的频率一般叫PLL时钟)
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);
这句话的意思是将HSI
时钟12倍频,为什么是12倍频而不是6倍频呢?如下图STM32F051系列的时钟树所示:
根据时钟树可以看出用PLL对HSI进行倍频时,硬件将首先对HSI 二分频,也就是为4M,所以必须再对其进行12倍频才能变成48M,最后通过RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);语句将PLL时钟作为系统时钟,至此系统的时钟变为48M
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |