• 一.STM32F030C8T6 MCU开发之系统时钟


    一.STM32F030C8T6 MCU开发之系统时钟

    0.总体功能概述

    使用STD库–en.stm32f0_stdperiph_lib_v1.6.0。

    系统的时钟为48MHZ。

    根据时钟树可以看出用PLL对HSI进行倍频时,硬件将首先对HSI 二分频,也就是为4M,所以必须再对其进行12倍频才能变成48M,最后通过RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);语句将PLL时钟作为系统时钟,至此系统的时钟变为48M。

    1.STM32F0系列时钟

    1.1 时钟框图

    在这里插入图片描述

    1.2 解释含义

    1、单片机内部的RC振荡器是8Mhz
    2、通过单片机引脚(OSC_IN OSC_OUT)接外部的晶振,这里就对外部的晶振有要求了,要求外部晶振输入频率范围是4Mhz~32Mhz
    3、是通过单片机引脚接外部的低速32.768Khz晶振,这个是单独的给内部的实时时钟模块(RTC)使用
    4、是内部的低速RC振荡器40K,可以给RTC用,也可以给IWDG看门狗模块用
    5、是时钟信号从MCO这个引脚上输出,这个输出可以作为测试,看看内部的时钟配置是否正确,也可以用作和其他硬件进行时钟同步用

    1.2.1 特别备注

    不同类型的时钟,供给不同的需求,内置的RC振荡器受到温度影响会大一些;

    2.时钟配置以及频率获取

    2.1 时钟频率获取

    RCC_ClocksTypeDef RCC_ClockFreq; //定义结构体变量,用来查看时钟频率
    RCC_GetClocksFreq(&RCC_ClockFreq);//函数初始化
    
    • 1
    • 2
    2.1.1时钟频率获取结果
    [2022-11-07 12:38:52]  SYSCLK_Frequency=48000000
    [2022-11-07 12:38:52]  HCLK_Frequency=48000000
    [2022-11-07 12:38:52]  PCLK_Frequency=48000000
    [2022-11-07 12:38:52]  ADCCLK_Frequency=14000000
    [2022-11-07 12:38:52]  CECCLK_Frequency=32786
    [2022-11-07 12:38:52]  I2C1CLK_Frequency=8000000
    [2022-11-07 12:38:52]  USART1CLK_Frequency=48000000
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.2 HCLK/PCLK 等配置

    	RCC_ClocksTypeDef RCC_ClockFreq; //定义结构体变量,用来查看时钟频率
      RCC_DeInit();
      RCC_HSEConfig(RCC_HSE_OFF);//关闭外部时钟HSE
      RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_12);//PLL倍频至48M HZ
      RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//配置SYSCLK
      RCC_HCLKConfig(RCC_SYSCLK_Div1);//配置HCLK
      RCC_PCLKConfig(RCC_HCLK_Div1);//配置PCLK
      RCC_GetClocksFreq(&RCC_ClockFreq);//函数初始化
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    );//配置PCLK
    RCC_GetClocksFreq(&RCC_ClockFreq);//函数初始化

    
    
    
    # 
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    HTML DOM Location实例讲解
    Git常用命令,满足日常开发使用,赶快收藏起来吧
    S4HANA - Cost Elements成本要素
    报错解决: 未能解析此远程名称: ‘raw.githubusercontent.com‘
    10.JAVAEE之网络编程
    pytest(13)-多线程、多进程执行用例
    2022杭电多校 第一场 个人题解(ABCDIHK)
    使用消息队列解决RTOS多线程同时打印串口乱序问题
    私域2.0时代,如何搭建「有魔力」的小程序积分商城?
    C/C++(a/b)*c的值 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 原文地址:https://blog.csdn.net/xushx_bigbear/article/details/127815773