@@ -116,35 +116,44 @@ extern "C" {
116116 */
117117WEAK void SystemClock_Config (void )
118118{
119- RCC_OscInitTypeDef RCC_OscInitStruct;
120- RCC_ClkInitTypeDef RCC_ClkInitStruct;
121- RCC_PeriphCLKInitTypeDef PeriphClkInit;
122-
123- __HAL_RCC_PWR_CLK_ENABLE ();
119+ RCC_OscInitTypeDef RCC_OscInitStruct = {};
120+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {};
124121
122+ /* Configure the main internal regulator output voltage */
125123 __HAL_PWR_VOLTAGESCALING_CONFIG (PWR_REGULATOR_VOLTAGE_SCALE1);
126-
127- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
128- RCC_OscInitStruct.HSIState = RCC_HSI_ON;
129- RCC_OscInitStruct.HSICalibrationValue = 16 ;
124+ /*
125+ * Initializes the RCC Oscillators according to the specified parameters
126+ * in the RCC_OscInitTypeDef structure.
127+ */
128+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
129+ RCC_OscInitStruct.HSEState = RCC_HSE_BYPASS;
130130 RCC_OscInitStruct.PLL .PLLState = RCC_PLL_ON;
131- RCC_OscInitStruct.PLL .PLLSource = RCC_PLLSOURCE_HSI;
132- RCC_OscInitStruct.PLL .PLLMUL = RCC_PLLMUL_4;
133- RCC_OscInitStruct.PLL .PLLDIV = RCC_PLLDIV_2;
134- HAL_RCC_OscConfig (&RCC_OscInitStruct);
135-
131+ RCC_OscInitStruct.PLL .PLLSource = RCC_PLLSOURCE_HSE;
132+ RCC_OscInitStruct.PLL .PLLMUL = RCC_PLLMUL_12;
133+ RCC_OscInitStruct.PLL .PLLDIV = RCC_PLLDIV_3;
134+ if (HAL_RCC_OscConfig (&RCC_OscInitStruct) != HAL_OK) {
135+ Error_Handler ();
136+ }
137+ /* Initializes the CPU, AHB and APB buses clocks */
136138 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
137139 | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
138140 RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
139141 RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
140142 RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
141143 RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
142- HAL_RCC_ClockConfig (&RCC_ClkInitStruct, FLASH_LATENCY_1);
143144
144- PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART2 | RCC_PERIPHCLK_I2C1;
145- PeriphClkInit.Usart2ClockSelection = RCC_USART2CLKSOURCE_PCLK1;
146- PeriphClkInit.I2c1ClockSelection = RCC_I2C1CLKSOURCE_PCLK1;
147- HAL_RCCEx_PeriphCLKConfig (&PeriphClkInit);
145+ if (HAL_RCC_ClockConfig (&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) {
146+ Error_Handler ();
147+ }
148+
149+ #ifdef USBCON
150+ RCC_PeriphCLKInitTypeDef PeriphClkInit = {};
151+ PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USB;
152+ PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLL;
153+ if (HAL_RCCEx_PeriphCLKConfig (&PeriphClkInit) != HAL_OK) {
154+ Error_Handler ();
155+ }
156+ #endif
148157}
149158
150159#ifdef __cplusplus
0 commit comments