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

    1.时钟树介绍

    SystemInit()后时钟频率大小:
    SYSCLK(系统时钟) =72MHz
    AHB 总线时钟(HCLK=SYSCLK) =72MHz
    APB1 总线时钟(PCLK1=SYSCLK/2) =36MHz
    APB2 总线时钟(PCLK2=SYSCLK/1) =72MHz
    PLL 主时钟 =72MHz

    2.时钟配置函数介绍

      (1)时钟使能配置函数:

        RCC_HSICmd
        RCC_LSICmd
        RCC_PLLCmd
        RCC_RTCCLKCmd
        RCC_AHBPeriphClockCmd
        RCC_APBxPeriphClockCmd

      (2)时钟源和分频因子相关配置函数:
         RCC_HSEConfig
         RCC_LSEConfig
         RCC_PLLConfig
         RCC_MCOConfig
         RCC_SYSCLKConfig
         RCC_HCLKConfig
         RCC_PCLK1Config
         RCC_PCLK2Config
         RCC_RTCCLKConfig
         RCC_ADCCLKConfig
         RCC_USBCLKConfig 

      (3)外设复位函数:
         RCC_APB1PeriphResetCmd
         RCC_APB2PeriphResetCmd

      (4)状态参数获取函数:
        RCC_GetSYSCLKSource
        RCC_GetClocksFreq
        RCC_GetFlagStatus
        RCC_ClearFlag

      (5)RCC中断相关函数:
        RCC_ITConfig
        RCC_ClearITPendingBit
        RCC_GetITStatus

    3.系统时钟设置步骤:

    void RCC_HSE_Config(u32 div,u32 pllm) //自定义系统时间(可以修改时钟)
    {
    	RCC_DeInit(); //将外设RCC寄存器重设为缺省值
    	RCC_HSEConfig(RCC_HSE_ON);//设置外部高速晶振(HSE)
    	if(RCC_WaitForHSEStartUp()==SUCCESS) //等待HSE起振
    	{
    		RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置AHB时钟(HCLK)
    		RCC_PCLK1Config(RCC_HCLK_Div2);//设置低速AHB时钟(PCLK1)
    		RCC_PCLK2Config(RCC_HCLK_Div1);//设置高速AHB时钟(PCLK2)
    		RCC_PLLConfig(div,pllm);//设置PLL时钟源及倍频系数
    		RCC_PLLCmd(ENABLE); //使能或者失能PLL
    		while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);//检查指定的RCC标志位设置与否,PLL就绪
    		RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟(SYSCLK)
    		while(RCC_GetSYSCLKSource()!=0x08);//返回用作系统时钟的时钟源,0x08:PLL作为系统时钟
    	}
    }
    
    时钟配置寄存器(RCC_CFGR)
     位3:2   SWS[1:0]:系统时钟切换状态 (System clock switch status)
        由硬件置’1’或清’0’来指示哪一个时钟源被作为系统时钟。
        00:HSI作为系统时钟;
        01:HSE作为系统时钟;
        10:PLL输出作为系统时钟;
        11:不可用。
  • 相关阅读:
    第三次作业
    第二次作业
    第一次作业
    仪仗队(欧拉函数)
    自己随便做的,没做完就没耐心继续了。呵呵
    从别处见到一位大神的代码 飞扬的小鸟(flappy bird)
    简易迷宫游戏c++
    STL做法 平衡树
    基于百度地图api + AngularJS 的入门地图
    javascript 简易文本编辑器
  • 原文地址:https://www.cnblogs.com/DXGG-Bond/p/11801994.html
Copyright © 2011-2022 走看看