@@ -116,35 +116,44 @@ extern "C" {
116
116
*/
117
117
WEAK void SystemClock_Config (void )
118
118
{
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 = {};
124
121
122
+ /* Configure the main internal regulator output voltage */
125
123
__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;
130
130
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 */
136
138
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
137
139
| RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
138
140
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
139
141
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
140
142
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
141
143
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
142
- HAL_RCC_ClockConfig (&RCC_ClkInitStruct, FLASH_LATENCY_1);
143
144
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
148
157
}
149
158
150
159
#ifdef __cplusplus
0 commit comments