一.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 时钟框图

一.STM32F030C8T6 MCU开发之系统时钟

; 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);//函数初始化

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

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);//函数初始化

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


#

Original: https://blog.csdn.net/xushx_bigbear/article/details/127815773
Author: 悟空胆好小
Title: 一.STM32F030C8T6 MCU开发之系统时钟

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/655608/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球