zoukankan      html  css  js  c++  java
  • STM32F4xx时钟理解

    理解力STM32时钟是我们的应用定时器等的基础,据总结近期工作:

    以下是一STM32时钟树:



    1.首先注意的的是图中画绿色圈圈的两个,HSE和HSI分别表示外部时钟和内部时钟,当中HSE 是是快速外部时钟。可接石英/陶瓷谐振器,或者接外部时钟源,HSE 也能够直接做为系统时钟或者 PLL 输入(从红圈4处能够看出),频率范围为 4MHz~26MHz。STM32默觉得25Mhz,像原子的板子就是8Mhz的,所以移植时一定要格外注意。

    2.注意红圈2代表的部分,这里是主锁相环倍频输出,用于产生系统须要的快速时钟信号,如图绿色箭头所看到的(STM32另一个副锁相环。如红圈3

    主 PLL 时钟的时钟源要先经过一个分频系数为 M 的分频器,然后经过倍频系数为 N 的倍频器出来之后的时候还须要经过一个分频系数为 P(第一个输出 PLLP)或者 Q(第二个输出 PLLQ)的分频器分频之后。最后才生成终于的主 PLL 时钟。比如我们的外部晶振选择 8MHz。同一时候我们设置对应的分频器 M=8。倍频器倍频系数 N=336,分频器分频系数 P=2,那么主 PLL 生成的第一个输出快速时钟 PLLP 为:PLL=8MHz * N/ (M*P)=8MHz* 336 /(8*2) = 168MHz(来源:正点原子)

    3.区分APB1和APB2
    红圈8表示的位置。STM32F4 非常多外设的时钟来源,即两个总线桥: APB1 和 APB2。当中 APB1是低速总线(最高 42Mhz),APB2 是快速总线(最高 84Mhz)。

    另外定时器部分。如果所在总线( APB1/APB2)的分频系数为 1,那么就不倍频,假设不为 1(比方 2/4/8/16)。那么就会 2 倍频( Fabpx*2)后。作为定时器时钟输入。

       简单点说,举个APB1的样例。系统时钟是168Mhz,APB1分频系数为4(system_stm32f4xx.c配置)。则APB1速度为42Mhz,可是挂靠在在该总线上的定时器,因为分频系数4而不是1,因此定时器输入频率为42Mhz x 2 =84 Mhz

    这里这个人讲的挺好的http://www.cnblogs.com/zyqgold/archive/2013/05/31/tim.html,可是定时器频率算错了。详细看评论,有人给他改过来了。

    这篇文章也非常好;http://blog.sina.com.cn/s/blog_7142d7da01014zwz.html



    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    14款响应式布局的前端开发框架
    如何在本地进行微信公众号的开发调试
    微信公众帐号应用开发—本地调试
    利用H5开发微信公众号
    微信公众平台开发入门教程
    JAVA编程不得不看的几本经典书籍
    使用百度UMeditor富文本编辑器,修改自定义图片上传,修改源码
    网站建设需要哪些程序
    Visual Studio 2013 中使用断点
    Objective-c 实例变量的访问级别
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4911324.html
Copyright © 2011-2022 走看看