配置32G030F6P6为128M主频的初始化程序,LL库
时间: 2024-03-09 22:46:22 浏览: 154
STM32G030F6P6中文手册
以下是使用LL库配置STM32G030F6P6为128M主频的初始化程序:
```c
#include "stm32g0xx_ll_bus.h"
#include "stm32g0xx_ll_cortex.h"
#include "stm32g0xx_ll_rcc.h"
void SystemClock_Config(void);
int main(void)
{
//配置系统时钟
SystemClock_Config();
while (1)
{
//TODO: Add your main code here.
}
}
void SystemClock_Config(void)
{
//使能 HSI时钟
LL_RCC_HSI_Enable();
while(LL_RCC_HSI_IsReady() != 1); //等待HSI稳定
//配置主PLL时钟
LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSI, LL_RCC_PLL_MUL_12, LL_RCC_PLL_DIV_2);
LL_RCC_PLL_Enable();
while(LL_RCC_PLL_IsReady() != 1); //等待PLL稳定
//配置系统时钟源为PLL
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);
while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL); //等待PLL成为系统时钟源
//配置AHB时钟
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
//配置APB1时钟
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
//配置APB2时钟
LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);
//配置FLASH
LL_FLASH_SetLatency(LL_FLASH_LATENCY_4);
//使能预取指缓存
LL_FLASH_EnablePrefetch();
//配置系统时钟为128MHz
SystemCoreClock = 128000000;
}
```
在该程序中,我们使用了LL库来配置STM32G030F6P6的系统时钟,具体步骤如下:
1. 使能HSI时钟,并等待HSI稳定。
2. 配置主PLL时钟,使用HSI作为输入时钟源,倍频系数为12,分频系数为2。
3. 使能PLL时钟,并等待PLL稳定。
4. 配置系统时钟源为PLL,并等待PLL成为系统时钟源。
5. 配置AHB时钟、APB1时钟和APB2时钟分频系数都为1。
6. 配置FLASH存储器读取等待周期为4个时钟周期,并使能预取指缓存。
7. 计算出系统时钟为128MHz,并设置SystemCoreClock变量。
阅读全文