@@ -112,23 +112,27 @@ WEAK void SystemClock_Config(void)
112112 /* * Initializes the RCC Oscillators according to the specified parameters
113113 * in the RCC_OscInitTypeDef structure.
114114 */
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 ;
117117 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;
118121 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 ;
120123 RCC_OscInitStruct.PLL .PLLM = 1 ;
121- RCC_OscInitStruct.PLL .PLLN = 62 ;
124+ RCC_OscInitStruct.PLL .PLLN = 125 ;
122125 RCC_OscInitStruct.PLL .PLLP = 2 ;
123- RCC_OscInitStruct.PLL .PLLQ = 2 ;
126+ RCC_OscInitStruct.PLL .PLLQ = 10 ;
124127 RCC_OscInitStruct.PLL .PLLR = 2 ;
125- RCC_OscInitStruct.PLL .PLLRGE = RCC_PLL1_VCIRANGE_3 ;
128+ RCC_OscInitStruct.PLL .PLLRGE = RCC_PLL1_VCIRANGE_2 ;
126129 RCC_OscInitStruct.PLL .PLLVCOSEL = RCC_PLL1_VCORANGE_WIDE;
127- RCC_OscInitStruct.PLL .PLLFRACN = 4096 ;
130+ RCC_OscInitStruct.PLL .PLLFRACN = 0 ;
128131 if (HAL_RCC_OscConfig (&RCC_OscInitStruct) != HAL_OK) {
129132 Error_Handler ();
130133 }
131134
135+
132136 /* * Initializes the CPU, AHB and APB buses clocks
133137 */
134138 RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
@@ -147,37 +151,49 @@ WEAK void SystemClock_Config(void)
147151 /* * Configure the programming delay
148152 */
149153 __HAL_FLASH_SET_PROGRAM_DELAY (FLASH_PROGRAMMING_DELAY_2);
154+
150155 /* * 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;
155162 PeriphClkInitStruct.PLL2 .PLL2M = 1 ;
156- PeriphClkInitStruct.PLL2 .PLL2N = 32 ;
163+ PeriphClkInitStruct.PLL2 .PLL2N = 125 ;
157164 PeriphClkInitStruct.PLL2 .PLL2P = 2 ;
158- PeriphClkInitStruct.PLL2 .PLL2Q = 8 ;
159- PeriphClkInitStruct.PLL2 .PLL2R = 4 ;
165+ PeriphClkInitStruct.PLL2 .PLL2Q = 15 ;
166+ PeriphClkInitStruct.PLL2 .PLL2R = 10 ;
160167 PeriphClkInitStruct.PLL2 .PLL2RGE = RCC_PLL2_VCIRANGE_2;
161168 PeriphClkInitStruct.PLL2 .PLL2VCOSEL = RCC_PLL2_VCORANGE_WIDE;
162169 PeriphClkInitStruct.PLL2 .PLL2FRACN = 0 ;
163170 PeriphClkInitStruct.PLL2 .PLL2ClockOut = RCC_PLL2_DIVQ | RCC_PLL2_DIVR;
164171 PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PLL2Q;
165- PeriphClkInitStruct.Sdmmc1ClockSelection = RCC_SDMMC1CLKSOURCE_PLL2R;
166172 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 ;
170181 PeriphClkInitStruct.PLL3 .PLL3P = 2 ;
171- PeriphClkInitStruct.PLL3 .PLL3Q = 8 ;
182+ PeriphClkInitStruct.PLL3 .PLL3Q = 5 ;
172183 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 ;
175186 PeriphClkInitStruct.PLL3 .PLL3FRACN = 0 ;
176187 PeriphClkInitStruct.PLL3 .PLL3ClockOut = RCC_PLL3_DIVQ;
177- PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLL3Q;
188+ PeriphClkInitStruct.Spi6ClockSelection = RCC_SPI6CLKSOURCE_PLL3Q;
189+ PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_PLL1Q;
178190 if (HAL_RCCEx_PeriphCLKConfig (&PeriphClkInitStruct) != HAL_OK) {
179191 Error_Handler ();
180192 }
193+
194+ /* * Configure the programming delay
195+ */
196+ __HAL_FLASH_SET_PROGRAM_DELAY (FLASH_PROGRAMMING_DELAY_2);
181197}
182198
183199#ifdef __cplusplus
0 commit comments