@@ -82,167 +82,3 @@ void SystemClock_Config(void)
8282 HAL_RCCEx_EnableMSIPLLMode ();
8383}
8484
85- #ifdef RT_USING_PM
86-
87- void SystemClock_MSI_ON (void )
88- {
89- RCC_OscInitTypeDef RCC_OscInitStruct = {0 };
90- RCC_ClkInitTypeDef RCC_ClkInitStruct = {0 };
91-
92- /* Initializes the CPU, AHB and APB busses clocks */
93- RCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_MSI ;
94- RCC_OscInitStruct .MSIState = RCC_MSI_ON ;
95- if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK )
96- {
97- RT_ASSERT (0 );
98- }
99-
100- RCC_ClkInitStruct .ClockType = RCC_CLOCKTYPE_SYSCLK ;
101- RCC_ClkInitStruct .SYSCLKSource = RCC_SYSCLKSOURCE_MSI ;
102- if (HAL_RCC_ClockConfig (& RCC_ClkInitStruct , FLASH_LATENCY_1 ) != HAL_OK )
103- {
104- Error_Handler ();
105- }
106- }
107-
108- void SystemClock_MSI_OFF (void )
109- {
110- RCC_OscInitTypeDef RCC_OscInitStruct = {0 };
111-
112- RCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_MSI ;
113- RCC_OscInitStruct .HSIState = RCC_MSI_OFF ;
114- RCC_OscInitStruct .PLL .PLLState = RCC_PLL_NONE ; /* No update on PLL */
115- if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK )
116- {
117- Error_Handler ();
118- }
119- }
120-
121- void SystemClock_80M (void )
122- {
123- RCC_OscInitTypeDef RCC_OscInitStruct ;
124- RCC_ClkInitTypeDef RCC_ClkInitStruct ;
125-
126- /**Initializes the CPU, AHB and APB busses clocks */
127- RCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_HSE ;
128- RCC_OscInitStruct .HSEState = RCC_HSE_ON ;
129- RCC_OscInitStruct .PLL .PLLState = RCC_PLL_ON ;
130- RCC_OscInitStruct .PLL .PLLSource = RCC_PLLSOURCE_HSE ;
131- RCC_OscInitStruct .PLL .PLLM = 1 ;
132- RCC_OscInitStruct .PLL .PLLN = 20 ;
133- RCC_OscInitStruct .PLL .PLLP = RCC_PLLP_DIV7 ;
134- RCC_OscInitStruct .PLL .PLLQ = RCC_PLLQ_DIV2 ;
135- RCC_OscInitStruct .PLL .PLLR = RCC_PLLR_DIV2 ;
136- if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK )
137- {
138- Error_Handler ();
139- }
140-
141- /**Initializes the CPU, AHB and APB busses clocks
142- */
143- RCC_ClkInitStruct .ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
144- | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2 ;
145- RCC_ClkInitStruct .SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK ;
146- RCC_ClkInitStruct .AHBCLKDivider = RCC_SYSCLK_DIV1 ;
147- RCC_ClkInitStruct .APB1CLKDivider = RCC_HCLK_DIV1 ;
148- RCC_ClkInitStruct .APB2CLKDivider = RCC_HCLK_DIV1 ;
149-
150- if (HAL_RCC_ClockConfig (& RCC_ClkInitStruct , FLASH_LATENCY_4 ) != HAL_OK )
151- {
152- Error_Handler ();
153- }
154- }
155-
156- void SystemClock_24M (void )
157- {
158- RCC_OscInitTypeDef RCC_OscInitStruct ;
159- RCC_ClkInitTypeDef RCC_ClkInitStruct ;
160-
161- /** Initializes the CPU, AHB and APB busses clocks */
162- RCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_HSE ;
163- RCC_OscInitStruct .HSEState = RCC_HSE_ON ;
164- RCC_OscInitStruct .PLL .PLLState = RCC_PLL_ON ;
165- RCC_OscInitStruct .PLL .PLLSource = RCC_PLLSOURCE_HSE ;
166- RCC_OscInitStruct .PLL .PLLM = 1 ;
167- RCC_OscInitStruct .PLL .PLLN = 12 ;
168- RCC_OscInitStruct .PLL .PLLP = RCC_PLLP_DIV7 ;
169- RCC_OscInitStruct .PLL .PLLQ = RCC_PLLQ_DIV2 ;
170- RCC_OscInitStruct .PLL .PLLR = RCC_PLLR_DIV4 ;
171- if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK )
172- {
173- Error_Handler ();
174- }
175- /** Initializes the CPU, AHB and APB busses clocks */
176- RCC_ClkInitStruct .ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
177- | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2 ;
178- RCC_ClkInitStruct .SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK ;
179- RCC_ClkInitStruct .AHBCLKDivider = RCC_SYSCLK_DIV1 ;
180- RCC_ClkInitStruct .APB1CLKDivider = RCC_HCLK_DIV1 ;
181- RCC_ClkInitStruct .APB2CLKDivider = RCC_HCLK_DIV1 ;
182- if (HAL_RCC_ClockConfig (& RCC_ClkInitStruct , FLASH_LATENCY_1 ) != HAL_OK )
183- {
184- Error_Handler ();
185- }
186- }
187-
188- void SystemClock_2M (void )
189- {
190- RCC_ClkInitTypeDef RCC_ClkInitStruct = {0 };
191- RCC_OscInitTypeDef RCC_OscInitStruct = {0 };
192-
193- /* MSI is enabled after System reset, update MSI to 2Mhz (RCC_MSIRANGE_5) */
194- RCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_MSI ;
195- RCC_OscInitStruct .MSIState = RCC_MSI_ON ;
196- RCC_OscInitStruct .MSIClockRange = RCC_MSIRANGE_5 ;
197- RCC_OscInitStruct .MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT ;
198- RCC_OscInitStruct .PLL .PLLState = RCC_PLL_NONE ;
199- if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK )
200- {
201- /* Initialization Error */
202- Error_Handler ();
203- }
204-
205- /* Select MSI as system clock source and configure the HCLK, PCLK1 and PCLK2
206- clocks dividers */
207- RCC_ClkInitStruct .ClockType = RCC_CLOCKTYPE_SYSCLK ;
208- RCC_ClkInitStruct .SYSCLKSource = RCC_SYSCLKSOURCE_MSI ;
209- RCC_ClkInitStruct .AHBCLKDivider = RCC_SYSCLK_DIV1 ;
210- RCC_ClkInitStruct .APB1CLKDivider = RCC_HCLK_DIV1 ;
211- RCC_ClkInitStruct .APB2CLKDivider = RCC_HCLK_DIV1 ;
212- if (HAL_RCC_ClockConfig (& RCC_ClkInitStruct , FLASH_LATENCY_0 ) != HAL_OK )
213- {
214- /* Initialization Error */
215- Error_Handler ();
216- }
217- }
218-
219- /**
220- * @brief Configures system clock after wake-up from STOP: enable HSI, PLL
221- * and select PLL as system clock source.
222- * @param None
223- * @retval None
224- */
225- void SystemClock_ReConfig (uint8_t mode )
226- {
227- SystemClock_MSI_ON ();
228-
229- switch (mode )
230- {
231- case PM_RUN_MODE_HIGH_SPEED :
232- case PM_RUN_MODE_NORMAL_SPEED :
233- SystemClock_80M ();
234- break ;
235- case PM_RUN_MODE_MEDIUM_SPEED :
236- SystemClock_24M ();
237- break ;
238- case PM_RUN_MODE_LOW_SPEED :
239- SystemClock_2M ();
240- break ;
241- default :
242- break ;
243- }
244-
245- // SystemClock_MSI_OFF();
246- }
247-
248- #endif
0 commit comments