您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页STM32F051使用自带时钟48M设置

STM32F051使用自带时钟48M设置

来源:暴趣科技网


正确设置:

void RCC_Configuration(void);

void RCC_Configuration(void)

{

//ÉèÖÃPLLʱÖÓÔ´¼°±¶ÆµÏµÊý

RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);///*!< clock*12 */

//ʹÄÜPLL

RCC_PLLCmd(ENABLE);

//µÈ´ýPLL³õʼ»¯³É¹¦

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)

{

}

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

input PLL

while(RCC_GetSYSCLKSource() != 0x08) //µÈ´ýϵͳʱÖÓ³õʼ»¯³É¹¦

{

}

}

去掉外部晶振后,单片机时钟源会默认的使用内部高速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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务