原创 STM32学习-使用内部时钟HSI做为系统时钟

2013-4-7 17:31 12193 15 16 分类: MCU/ 嵌入式 文集: STM32F1学习笔记
现在新做了块STM32的板子,有点儿悲摧,晶振还没有,但程序还是要调试的,所以考虑使用内部时钟HSI。
首先在主程序中注释掉SystemInit()
然后使用下面的函数做为系统时钟的初始化函数
void RCC_Configuration(void)
{
  RCC_DeInit();//将外设 RCC寄存器重设为缺省值
 
  RCC_HSICmd(ENABLE);//使能HSI  
  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET)//等待HSI使能成功
  {
  }
 
  if(1)
  {
    //FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    //FLASH_SetLatency(FLASH_Latency_2);
   
    RCC_HCLKConfig(RCC_SYSCLK_Div1);   
    RCC_PCLK1Config(RCC_HCLK_Div2);
    RCC_PCLK2Config(RCC_HCLK_Div1);
    
    //设置 PLL 时钟源及倍频系数
    RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_2);                
    //使能或者失能 PLL,这个参数可以取:ENABLE或者DISABLE
    RCC_PLLCmd(ENABLE);//如果PLL被用于系统时钟,那么它不能被失能
    //等待指定的 RCC 标志位设置成功 等待PLL初始化成功
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }
 
    //设置系统时钟(SYSCLK) 设置PLL为系统时钟源
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  
    //等待PLL成功用作于系统时钟的时钟源
    //  0x00:HSI 作为系统时钟 
    //  0x04:HSE作为系统时钟 
    //  0x08:PLL作为系统时钟  
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
}
 
当然这段程序是从网上找来的,做了适当的修改。背景设为绿色的部分已经注释掉的代码,可能跟库版本有关,先注释掉了,要不无法通过编译。
现在把程序的流程理一下
20130407104351332.jpg
中间配置时钟的:
RCC_HCLKConfig(RCC_SYSCLK_Div1);   
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);
分别对应下图①②③标注的部分。RCC_HCLKConfig(RCC_SYSCLK_Div1)——表示AHB时钟为系统时钟SYSCLK;RCC_PCLK1Config(RCC_HCLK_Div2)——表示APB1时钟为HCLK/2,其中HCLK为AHB时钟;RCC_PCLK2Config(RCC_HCLK_Div1)——表示APB2时钟为HCLK.
 
设置PLL,对应图中红圈儿部分,设置PLL时钟源和倍频系统。
设置系统时钟,对应图中蓝圈部分。
20130407104434740.jpg
要了解系统时钟的,可以参考http://bbs.ednchina.com/BLOG_ARTICLE_3008928.HTM
 
参考文献:
1.http://blog.21ic.com/user1/5864/archives/2009/64565.html

文章评论1条评论)

登录后参与讨论

用户377235 2014-5-12 20:44

很好,希望有用啊,明天试一下
相关推荐阅读
飞言走笔 2017-01-06 21:56
2017,新的博客旅程
EDNChina 改版终于成功了!祝贺! 2017年,开始新的旅程~ ...
飞言走笔 2016-06-01 10:17
【博客大赛】《白鹿原》读后
《白鹿原》这本书已经买了很久,多次以来,都是只翻看几页,顶多几章就放下了,觉得这是一个大部头,得有足够的时间才行。前几天陈忠实先生去世的消息传来,让我很震惊和惭愧。 一口气读完这本书,畅快淋漓,又意...
飞言走笔 2016-03-26 16:42
【博客大赛】《毛斯朝》读后
这本书最早是在凤凰卫视曾子墨主持的一期关于沈志华先生的《世纪大讲堂》节目中知晓的。但是一直拖到今天才读完。 说实话,书的主要内容与当前官方的宣传口径有很多不一致的地方,而沈先生作为中国掌握苏联档...
飞言走笔 2016-03-08 13:46
【博客大赛】蓝牙4.0低功耗技术及其认证要求
详见附件 ...
飞言走笔 2016-02-02 14:20
【转】蓝牙4.0协议官方手册(一)——通用属性配置文件
转自:http://blog.csdn.net/jinzhichaoshuiping/article/details/43370009 通用属性配置文件 (GATT)——该说明书定义了通用属性配置...
飞言走笔 2016-01-31 23:24
【博客大赛】脑洞大开、三观重塑——《人类简史》读后
终于读完了《人类简史》,没有把这本书拖到二月份,这也是2016年读完的第一本书。之前也有所耳闻,但是没有太在意,倒是罗胖子的跨年演讲上偶然提到,不知怎么就勾起了阅读此书的欲望。 本文的标题用了“脑洞...
我要评论
1
15
关闭 站长推荐上一条 /2 下一条