OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2506|回复: 2

关于STM32系统时钟的设置

[复制链接]

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2016-12-13
在线时间
42 小时
发表于 2016-12-22 16:33:11 | 显示全部楼层 |阅读模式
5金钱
新手看了一下午。把系统时钟的设置自己总结了一下。写了以下程序。
void Stm32_Clock_Init()
{
        RCC_DeInit();        //RCC恢复默认值,必备步骤
        //*设置内部高速晶振为系统时钟源*//       
//        RCC_HSICmd(ENABLE);//内部高速晶振使能
//                while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)==RESET);//等待内部高速晶振起振       
//        RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_4);//设置PLL倍频时钟源和倍频数
//        RCC_PLLCmd(ENABLE);//使能PLL倍频
//        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//等待PLL时钟起振
//        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟源来自PLL
//        while(RCC_GetSYSCLKSource() != 0x08);//检查系统时钟源是否来自PLL

        //*设置外部高速晶振为系统时钟源*//               
        RCC_HSEConfig(RCC_HSE_ON);//外部高速晶振使能
        while(RCC_GetFlagStatus(RCC_FLAG_HSERDY)==RESET);//等待外部高速晶振起振
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_3);//设置PLL倍频时钟源和倍频数
        RCC_PLLCmd(ENABLE);//使能PLL倍频
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//等待PLL时钟起振
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟源来自PLL
        //        while(RCC_GetSYSCLKSource() != 0x08);//检查系统时钟源是否来自PLL
    //  0x00:HSI 作为系统时钟   
    //  0x04:HSE作为系统时钟   
    //  0x08:PLL作为系统时钟  
}


涵盖了系统时钟源的初始化。以后想选内部或外部晶振工作时是否可以套用这个子函数。有什么地方没设置完全大神们可否指点一下。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2016-12-13
在线时间
42 小时
 楼主| 发表于 2016-12-22 20:47:08 | 显示全部楼层
回复

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2016-12-22 21:01:08 | 显示全部楼层
这种在库函数版本中都有函数来实现的,不用自己去写的,只需要自己去配置下就可以了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 11:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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