STM32L0xxHal库SystemClock_Config函数

STM32L051c8t6 使用内部HSI时钟初始化。

 

RCC_ClkInitTypeDef RCC_ClkInitStruct;   //结构体初始化

RCC_OscInitTypeDef RCC_OscInitStruct; //结构体初始化

 

__HAL_RCC_PWR_CLK_ENABLE();  //使能电源控制时钟   

 

__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);//设置调压器输出电压级别1

这个设置用来设置调压器输出电压级别,以便在器件未以最大频率工作时使性能与功耗实现平衡

 

RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; //时钟源为HSI内部高速时钟

                                                               //RCC_OSCILLATORTYPE_HSE   高速外部时钟

RCC_OscInitStruct.HSEState = RCC_HSE_OFF;  //关闭HES

RCC_OscInitStruct.HSIState = RCC_HSI_ON;    //打开HSI

RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; //打开PLL

RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;//设置PLL时钟源为HSI

RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;//PLL VCO输入时钟的倍频系数

RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;//PLL VCO输入时钟的分频系数

RCC_OscInitStruct.HSICalibrationValue = 0x10;//HSI校准调整值

HAL_RCC_OscConfig(&RCC_OscInitStruct);  //初始化

 

RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);    //选中PLL作为系统时钟源并且配置HCLK,PCLK1和PCLK2

RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; //设置系统时钟源

RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; //AHB分频系数为1

RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;  //APB1分频系数为1

RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  //APB2分频系数为1

HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1);//初始化并同时设置FLASH 的延迟周期为1

你可能感兴趣的:(STM32HAL库学习)