基本信息
文件名称:STMicroelectronics 系列:STM32G0 系列_(6).STM32G0系列的时钟配置.docx
文件大小:23.69 KB
总页数:24 页
更新时间:2025-06-19
总字数:约1.45万字
文档摘要

PAGE1

PAGE1

STM32G0系列的时钟配置

在嵌入式开发中,时钟配置是至关重要的一步,它直接影响到系统的性能、功耗和稳定性。STM32G0系列单片机提供了丰富的时钟源和灵活的时钟配置选项,使得开发者可以根据具体需求进行优化。本节将详细介绍STM32G0系列的时钟配置原理和方法,并提供实际操作的例子。

时钟源概述

STM32G0系列单片机提供了多种时钟源,包括内部时钟源和外部时钟源。这些时钟源可以用于系统时钟、外设时钟和低功耗模式下的时钟。主要的时钟源如下:

内部时钟源(InternalClockSources)

HSI(HighSpeedInternalClock):16MHz的高速内部时钟,启动速度快,但精度较低。

LSI(LowSpeedInternalClock):32kHz的低速内部时钟,用于低功耗模式和实时时钟。

外部时钟源(ExternalClockSources)

HSE(HighSpeedExternalClock):外部高速时钟,可以连接到外部晶体或振荡器,频率范围为4-26MHz。

LSE(LowSpeedExternalClock):外部低速时钟,通常连接到32.768kHz的晶体,用于实时时钟。

PLL(PhaseLockedLoop)

PLL:通过锁相环倍频内部或外部时钟源,可以生成更高的系统时钟频率,最高可达64MHz。

时钟树

STM32G0系列的时钟树结构如图所示:

++

|SystemClock|

++

|

v

++

|AHB(Advanced|

|High-performance|

|Bus)Clock|

++

|

v

++

|APB(Advanced|

|PeripheralBus|

|Bus)Clock|

++

|

v

++

|Peripherals|

++

系统时钟(SystemClock)

系统时钟是单片机的核心时钟,用于控制CPU和其他关键组件的运行。STM32G0系列的系统时钟可以由HSI、HSE或PLL提供。

AHB总线时钟(AHBBusClock)

AHB总线时钟是系统时钟的直接输出,用于控制所有高速外设和内存的访问。

APB总线时钟(APBBusClock)

APB总线时钟是AHB总线时钟的分频输出,用于控制低速外设的运行。APB1和APB2总线时钟可以分别进行不同的分频设置。

时钟配置步骤

选择时钟源

配置时钟分频

使能时钟源

切换系统时钟

选择时钟源

首先,需要确定系统时钟的来源。可以选择HSI、HSE或PLL。根据具体需求选择合适的时钟源。

配置时钟分频

配置时钟分频是为了满足不同外设的频率需求。AHB总线时钟可以配置为系统时钟的1/1、1/2或1/4分频。APB总线时钟可以配置为AHB总线时钟的1/1或1/2分频。

使能时钟源

使能时钟源是确保所选时钟源可用。例如,如果选择HSE,需要确保外部晶体或振荡器已经正确连接并且启动成功。

切换系统时钟

最后,将系统时钟切换到所配置的时钟源。切换系统时钟时需要确保新时钟源已经稳定。

时钟配置实例

使用HSE作为系统时钟

假设我们使用外部8MHz晶体作为系统的时钟源,并将其配置为系统时钟。

#includestm32g0xx_hal.h

voidSystemClock_Config(void)

{

RCC_OscInitTypeDefRCC_OscInitStruct={0};

RCC_ClkInitTypeDef