微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 做版主之后的第一个贴子

做版主之后的第一个贴子

时间:10-02 整理:3721RD 点击:
          2012的7月份,本该是乖乖的在做暑假工的,但是因为各种原因,和同学在广州被奸商坑了,身无分文、像个贼一样寄宿在广州的某个高校宿舍里,也是这个时候,我第一次来到这个论坛,在这个论坛上开始了我的单片机之旅,第一次知道这里有明星小组之后,我便决定日后一定要申请这里的明星小组。一直到今天,从一个年轻菜鸟变成了现在的还是菜鸟,我决定向论坛申请明星小组,最后管理员给了我一个机会,让我做单片机版小编,第一次做这么大的官,到现在还不太知道怎么管理,老对不起管理员了管理员让我发布一些自己做的练习....我对51单片机不精通,对AVR单片机也不精通,对STM32更不精通,因为对STM32比较感兴趣,所以想和大家一起来学习STM32
        第一篇    STM32的时钟
       从51和AVR突然间到了STM32,才发现STM32是多么的强大,时钟也需要配置,还那么的复杂..
      


     这是STM32的时钟树,在配置时钟时,需要配置到AHB,也就是总线时钟。普遍的最小系统使用的是外部高速时钟,刚上电的时候单片机使用的是内部时钟,所以需要我们进行软件配置成外部时钟和设置频率
     时钟的整个流向:时钟源从HSE OSC进来  ->  可分为3个方向,这里选择直接进入PLLXTPRE  ->  PLLSRC选择PLL时钟源  ->  PLLMUL选择倍频数  ->
    系统时钟源选择  ->  AHB选择分频数  ->  时钟初始化配置大功告成
     可以看出,要想达到初始化配置大功告成需要配置6次
    第一次:打开外部时钟源,寄存器RCC_CR的第16位置位打开外部时钟源,17位硬件置位表示外部时钟源就绪。
                 编程:RCC->CR|=1<<16;    //外部中时钟使能HSE ON
                           while(!((RCC->CR>>17)&0X01));//等待外部高速时钟就位   
   第二次:设置PLLXTPRE分频数,寄存器RCC_CFGR的第17位,这里设置成不进行分频
                编程:RCC->CFGR&=~(1<<17);
   第三次:选择PLL时钟源,寄存器RCC_CFGR第16位
               编程: RCC->CFGR|=1<<16;        //外部高速时钟作为 PLL输入,PLLSRC ON
   第四次:选择PLL的倍频数,位21--18
                编程,根据实际情况选择
   第五次:系统时钟源选择 RCC_CFGR位【1:0】
               编程:RCC->CFGR=0X00000002;  //PLL作为时钟
  第六次:打开PLL时钟,RCC_CR位26
              编程:RCC->CR|=1<<24;        //PLL ON
                        while(!((RCC->CR>>25)&0X01));//等待PLL锁定
     就到这里,欢迎大家纠错

小伙子,加油

OK   会努力滴

不错的文件,值得收藏

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top