@@ -112,23 +112,27 @@ WEAK void SystemClock_Config(void)
112
112
/* * Initializes the RCC Oscillators according to the specified parameters
113
113
* in the RCC_OscInitTypeDef structure.
114
114
*/
115
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_HSE ;
116
- RCC_OscInitStruct. HSEState = RCC_HSE_ON ;
115
+ RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48 | RCC_OSCILLATORTYPE_LSI
116
+ | RCC_OSCILLATORTYPE_CSI ;
117
117
RCC_OscInitStruct.LSIState = RCC_LSI_ON;
118
+ RCC_OscInitStruct.HSI48State = RCC_HSI48_ON;
119
+ RCC_OscInitStruct.CSIState = RCC_CSI_ON;
120
+ RCC_OscInitStruct.CSICalibrationValue = RCC_CSICALIBRATION_DEFAULT;
118
121
RCC_OscInitStruct.PLL .PLLState = RCC_PLL_ON;
119
- RCC_OscInitStruct.PLL .PLLSource = RCC_PLL1_SOURCE_HSE ;
122
+ RCC_OscInitStruct.PLL .PLLSource = RCC_PLL1_SOURCE_CSI ;
120
123
RCC_OscInitStruct.PLL .PLLM = 1 ;
121
- RCC_OscInitStruct.PLL .PLLN = 62 ;
124
+ RCC_OscInitStruct.PLL .PLLN = 125 ;
122
125
RCC_OscInitStruct.PLL .PLLP = 2 ;
123
- RCC_OscInitStruct.PLL .PLLQ = 2 ;
126
+ RCC_OscInitStruct.PLL .PLLQ = 10 ;
124
127
RCC_OscInitStruct.PLL .PLLR = 2 ;
125
- RCC_OscInitStruct.PLL .PLLRGE = RCC_PLL1_VCIRANGE_3 ;
128
+ RCC_OscInitStruct.PLL .PLLRGE = RCC_PLL1_VCIRANGE_2 ;
126
129
RCC_OscInitStruct.PLL .PLLVCOSEL = RCC_PLL1_VCORANGE_WIDE;
127
- RCC_OscInitStruct.PLL .PLLFRACN = 4096 ;
130
+ RCC_OscInitStruct.PLL .PLLFRACN = 0 ;
128
131
if (HAL_RCC_OscConfig (&RCC_OscInitStruct) != HAL_OK) {
129
132
Error_Handler ();
130
133
}
131
134
135
+
132
136
/* * Initializes the CPU, AHB and APB buses clocks
133
137
*/
134
138
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
@@ -147,37 +151,49 @@ WEAK void SystemClock_Config(void)
147
151
/* * Configure the programming delay
148
152
*/
149
153
__HAL_FLASH_SET_PROGRAM_DELAY (FLASH_PROGRAMMING_DELAY_2);
154
+
150
155
/* * Initializes the peripherals clock
151
- */
152
- PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SDMMC1 | RCC_PERIPHCLK_ADCDAC
153
- | RCC_PERIPHCLK_LPUART1 | RCC_PERIPHCLK_USB;
154
- PeriphClkInitStruct.PLL2 .PLL2Source = RCC_PLL2_SOURCE_HSE;
156
+ */
157
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ADCDAC | RCC_PERIPHCLK_LPUART1
158
+ | RCC_PERIPHCLK_SDMMC1 | RCC_PERIPHCLK_USB
159
+ | RCC_PERIPHCLK_SPI1 | RCC_PERIPHCLK_SPI2
160
+ | RCC_PERIPHCLK_SPI3 | RCC_PERIPHCLK_SPI6;
161
+ PeriphClkInitStruct.PLL2 .PLL2Source = RCC_PLL2_SOURCE_CSI;
155
162
PeriphClkInitStruct.PLL2 .PLL2M = 1 ;
156
- PeriphClkInitStruct.PLL2 .PLL2N = 32 ;
163
+ PeriphClkInitStruct.PLL2 .PLL2N = 125 ;
157
164
PeriphClkInitStruct.PLL2 .PLL2P = 2 ;
158
- PeriphClkInitStruct.PLL2 .PLL2Q = 8 ;
159
- PeriphClkInitStruct.PLL2 .PLL2R = 4 ;
165
+ PeriphClkInitStruct.PLL2 .PLL2Q = 15 ;
166
+ PeriphClkInitStruct.PLL2 .PLL2R = 10 ;
160
167
PeriphClkInitStruct.PLL2 .PLL2RGE = RCC_PLL2_VCIRANGE_2;
161
168
PeriphClkInitStruct.PLL2 .PLL2VCOSEL = RCC_PLL2_VCORANGE_WIDE;
162
169
PeriphClkInitStruct.PLL2 .PLL2FRACN = 0 ;
163
170
PeriphClkInitStruct.PLL2 .PLL2ClockOut = RCC_PLL2_DIVQ | RCC_PLL2_DIVR;
164
171
PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PLL2Q;
165
- PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_PLL2R;
166
172
PeriphClkInitStruct.AdcDacClockSelection = RCC_ADCDACCLKSOURCE_PLL2R;
167
- PeriphClkInitStruct.PLL3 .PLL3Source = RCC_PLL3_SOURCE_HSE;
168
- PeriphClkInitStruct.PLL3 .PLL3M = 1 ;
169
- PeriphClkInitStruct.PLL3 .PLL3N = 48 ;
173
+ PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_PLL1Q;
174
+ PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
175
+ PeriphClkInitStruct.Spi1ClockSelection = RCC_SPI1CLKSOURCE_PLL1Q;
176
+ PeriphClkInitStruct.Spi2ClockSelection = RCC_SPI2CLKSOURCE_PLL1Q;
177
+ PeriphClkInitStruct.Spi3ClockSelection = RCC_SPI3CLKSOURCE_PLL1Q;
178
+ PeriphClkInitStruct.PLL3 .PLL3Source = RCC_PLL3_SOURCE_CSI;
179
+ PeriphClkInitStruct.PLL3 .PLL3M = 2 ;
180
+ PeriphClkInitStruct.PLL3 .PLL3N = 125 ;
170
181
PeriphClkInitStruct.PLL3 .PLL3P = 2 ;
171
- PeriphClkInitStruct.PLL3 .PLL3Q = 8 ;
182
+ PeriphClkInitStruct.PLL3 .PLL3Q = 5 ;
172
183
PeriphClkInitStruct.PLL3 .PLL3R = 2 ;
173
- PeriphClkInitStruct.PLL3 .PLL3RGE = RCC_PLL3_VCIRANGE_0 ;
174
- PeriphClkInitStruct.PLL3 .PLL3VCOSEL = RCC_PLL3_VCORANGE_MEDIUM ;
184
+ PeriphClkInitStruct.PLL3 .PLL3RGE = RCC_PLL3_VCIRANGE_3 ;
185
+ PeriphClkInitStruct.PLL3 .PLL3VCOSEL = RCC_PLL3_VCORANGE_WIDE ;
175
186
PeriphClkInitStruct.PLL3 .PLL3FRACN = 0 ;
176
187
PeriphClkInitStruct.PLL3 .PLL3ClockOut = RCC_PLL3_DIVQ;
177
- PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLL3Q;
188
+ PeriphClkInitStruct.Spi6ClockSelection = RCC_SPI6CLKSOURCE_PLL3Q;
189
+ PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLL1Q;
178
190
if (HAL_RCCEx_PeriphCLKConfig (&PeriphClkInitStruct) != HAL_OK) {
179
191
Error_Handler ();
180
192
}
193
+
194
+ /* * Configure the programming delay
195
+ */
196
+ __HAL_FLASH_SET_PROGRAM_DELAY (FLASH_PROGRAMMING_DELAY_2);
181
197
}
182
198
183
199
#ifdef __cplusplus
0 commit comments