stm32G070单片机,使用外部8MHz晶振,配置系统主频为48MHz
时间: 2024-09-07 07:00:59 浏览: 44
STM32G070是一款基于ARM Cortex-M0+内核的低功耗微控制器,它属于STM32 G0系列,适合于电池供电的物联网应用。当使用外部8MHz晶体振荡器作为系统的时钟源,并将系统主频配置为48MHz,需要按照以下步骤进行:
1. **时钟源配置**:
- 首先,在STM32的头文件(如`stm32g0xx_hal_conf.h`)中启用HSE(High-Speed External Oscillator)外设。这通常涉及设置相关的GPIO脚作为晶振输入,并配置HAL库中的时钟管理API。
```c
#define HSE_VALUE 8000000UL // 设置8MHz晶振的实际频率
HAL_RCC_OscConfig(&RCC_OscInitStruct);
```
2. **时钟树配置**:
- 调整时钟分频器,例如通过`HAL_RCC_ClockConfig()`函数配置System Clock(HCLK)和APB1时钟(PCLK1)的预分频因子。一般选择预分频因子2,以便从48MHz得到24MHz给APB1。
```c
RCC_OscInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1;
RCC_OscInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // HCLK = SYSCLK / 1
RCC_OscInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; // PCLK1 = HCLK / 2
HAL_RCC_ClockConfig(&RCC_OscInitStruct, FLASH_LATENCY_0);
```
3. **启用系统时钟**:
- 最后一步是启用新的系统时钟配置,并等待时钟稳定。
```c
if (HAL_RCC_ClockInit(&RCC_OscInitStruct) != HAL_OK)
{
/* Initialization Error */
}
```
阅读全文