zoukankan      html  css  js  c++  java
  • 认识STM32的系统时钟

    STM32共有五个时钟源,分别是:

    • HSI是高速内部时钟、RC振荡器,频率为8MHz;
    • HSE是高速外部时钟,频率范围为4~6MHz; (可接石英/陶瓷谐振器或者接外部时钟源)
    • LSI是低速内部时钟,频率40kHz; (独立看门狗时钟源、可作RTC时钟源)
    • LSE是低速外部时钟,频率为32.768kHz石英晶体; (主要RTC时钟源)
    • PLL是锁相环倍频输出,频率可选择为HSI/2、HSE或者HSE/2、倍频可选择2~16倍,但其输出频率最大不超过72MHz;

          此处重点介绍系统时钟,一般其他所有的外设时钟的来源都是SYSCLK,SYSCLK通过AHB分频器分频之后送给各个模块使用。这些模块中包括APB1和APB2分频器。

    • 送给APB1分频器,输出一路供APB1外设使用(最大频率为36MHz),另一路送给定时器(Timer)2、3、4倍频器使用;
    • 送给APB2分频器,输出一路供APB2外设使用(最大频率为72MHz),另一路送个定时器(Timer)1倍频使用;

          具体如下表:

    APB外设内容表
    名称 类型     外设内容
    APB1 低速外设

    电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3等

    APB2 高速外设 UART1、SPI1、Timer1、ADC1、ADC2、普通IO口(PA~PE)、第二功能IO口等

          以上的时钟输出中很多都是带使能控制的,例如:

                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOG, ENABLE);

    是对PD和PG口进行时钟使能。

          STM32时钟系统配置初始化有函数Sys-temInit()之外,其它的配置在stm32f10x-rcc.h文件之中。

          对于系统时钟默认的情况下在SystemInit函数的SetSysClock()函数中判断的,具体如下:

          static void SetSysClock(void)
           {
             #ifdef SYSCLK_FREQ_HSE
             SetSysClockToHSE();
             #elif defined SYSCLK_FREQ_24MHz
             SetSysClockTo24();
             #elif defined SYSCLK_FREQ_36MHz
             SetSysClockTo36();
             #elif defined SYSCLK_FREQ_48MHz
             SetSysClockTo48();
             #elif defined SYSCLK_FREQ_56MHz
             SetSysClockTo56();
             #elif defined SYSCLK_FREQ_72MHz
             SetSysClockTo72();
             #endif
           }

    这段代码是判定系统宏定义的时钟是多少,然后设置相应的值,系统默认为72MHz:

                                       #define SYSCLK_FREQ_72MHz  72000000

    如果需要设置其他频率的时钟,只需要在stm32f10x-rcc.c文件的第115行注释掉上面代码,加入将需要的频率代码即可。

          在SystemInit()函数中设置的系统时钟的大小如下:

                    • SYSCLK(系统时钟)=72MHz;
                    • AHB总线时钟(使用系统时钟)=72MHz;
                    • APB1总线时钟(PCLK1)=36MHz;
                    • APB2总线时钟(PCLK2)=72MHz;
  • 相关阅读:
    模板 无源汇上下界可行流 loj115
    ICPC2018JiaozuoE Resistors in Parallel 高精度 数论
    hdu 2255 奔小康赚大钱 最佳匹配 KM算法
    ICPC2018Beijing 现场赛D Frog and Portal 构造
    codeforce 1175E Minimal Segment Cover ST表 倍增思想
    ICPC2018Jiaozuo 现场赛H Can You Solve the Harder Problem? 后缀数组 树上差分 ST表 口胡题解
    luogu P1966 火柴排队 树状数组 逆序对 离散化
    luogu P1970 花匠 贪心
    luogu P1967 货车运输 最大生成树 倍增LCA
    luogu P1315 观光公交 贪心
  • 原文地址:https://www.cnblogs.com/lwangj/p/5071565.html
Copyright © 2011-2022 走看看