找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3716|回复: 0
打印 上一主题 下一主题
收起左侧

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振荡器HSIHSI频率大约为8M,所以要想使系统获得48M的频率需要用PLL倍频后做为系统的时钟,PLL是一个锁相环,专门用来倍频或者分频的。(倍频后所得的频率一般叫PLL时钟)
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_12);
这句话的意思是将HSI时钟12倍频,为什么是12倍频而不是6倍频呢?如下图STM32F051系列的时钟树所示:


根据时钟树可以看出用PLLHSI进行倍频时,硬件将首先对HSI 二分频,也就是为4M,所以必须再对其进行12倍频才能变成48M,最后通过RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);语句将PLL时钟作为系统时钟,至此系统的时钟变为48M


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表