1 /* 2 * Copyright (c) 2006-2023, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2018-11-06 SummerGift first version 9 */ 10 11 #include "board.h" 12 13 /** 14 * @brief System Clock Configuration 15 * @retval None 16 */ SystemClock_Config(void)17void SystemClock_Config(void) 18 { 19 RCC_OscInitTypeDef RCC_OscInitStruct = {0}; 20 RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; 21 22 /** Configure the main internal regulator output voltage 23 */ 24 __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0); 25 26 while(!__HAL_PWR_GET_FLAG(PWR_FLAG_VOSRDY)) {} 27 28 /** Initializes the RCC Oscillators according to the specified parameters 29 * in the RCC_OscInitTypeDef structure. 30 */ 31 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_HSI 32 |RCC_OSCILLATORTYPE_HSE; 33 RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS_DIGITAL; 34 RCC_OscInitStruct.HSIState = RCC_HSI_ON; 35 RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; 36 RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; 37 RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; 38 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; 39 RCC_OscInitStruct.PLL.PLLSource = RCC_PLL1_SOURCE_HSE; 40 RCC_OscInitStruct.PLL.PLLM = 4; 41 RCC_OscInitStruct.PLL.PLLN = 250; 42 RCC_OscInitStruct.PLL.PLLP = 2; 43 RCC_OscInitStruct.PLL.PLLQ = 2; 44 RCC_OscInitStruct.PLL.PLLR = 2; 45 RCC_OscInitStruct.PLL.PLLRGE = RCC_PLL1_VCIRANGE_1; 46 RCC_OscInitStruct.PLL.PLLVCOSEL = RCC_PLL1_VCORANGE_WIDE; 47 RCC_OscInitStruct.PLL.PLLFRACN = 0; 48 if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) 49 { 50 Error_Handler(); 51 } 52 53 /** Initializes the CPU, AHB and APB buses clocks 54 */ 55 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK 56 |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2 57 |RCC_CLOCKTYPE_PCLK3; 58 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; 59 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; 60 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; 61 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; 62 RCC_ClkInitStruct.APB3CLKDivider = RCC_HCLK_DIV1; 63 64 if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) 65 { 66 Error_Handler(); 67 } 68 } 69