@@ -218,18 +218,18 @@ void xdot_enter_stop_mode() {
218
218
HAL_PWR_EnterSTOPMode (PWR_LOWPOWERREGULATOR_ON , PWR_STOPENTRY_WFI );
219
219
220
220
RCC_ClkInitTypeDef RCC_ClkInitStruct ;
221
- RCC_OscInitTypeDef RCC_OscInitStruct ;
221
+ RCC_OscInitTypeDef HSERCC_OscInitStruct ;
222
222
/* Enable HSE and HSI48 oscillators and activate PLL with HSE as source */
223
- RCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI ;
224
- RCC_OscInitStruct .HSEState = RCC_HSE_ON ; /* External 24 MHz xtal on OSC_IN/OSC_OUT */
225
- RCC_OscInitStruct .HSIState = RCC_HSI_OFF ;
223
+ HSERCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI ;
224
+ HSERCC_OscInitStruct .HSEState = RCC_HSE_ON ; /* External 24 MHz xtal on OSC_IN/OSC_OUT */
225
+ HSERCC_OscInitStruct .HSIState = RCC_HSI_OFF ;
226
226
// SYSCLK = 32 MHz ((24 MHz * 4) / 3)
227
227
// USBCLK = 48 MHz ((24 MHz * 4) / 2) --> USB OK
228
- RCC_OscInitStruct .PLL .PLLState = RCC_PLL_ON ;
229
- RCC_OscInitStruct .PLL .PLLSource = RCC_PLLSOURCE_HSE ;
230
- RCC_OscInitStruct .PLL .PLLMUL = RCC_PLL_MUL4 ;
231
- RCC_OscInitStruct .PLL .PLLDIV = RCC_PLL_DIV3 ;
232
- if (HAL_RCC_OscConfig (& RCC_OscInitStruct ) != HAL_OK ) {
228
+ HSERCC_OscInitStruct .PLL .PLLState = RCC_PLL_ON ;
229
+ HSERCC_OscInitStruct .PLL .PLLSource = RCC_PLLSOURCE_HSE ;
230
+ HSERCC_OscInitStruct .PLL .PLLMUL = RCC_PLL_MUL4 ;
231
+ HSERCC_OscInitStruct .PLL .PLLDIV = RCC_PLL_DIV3 ;
232
+ if (HAL_RCC_OscConfig (& HSERCC_OscInitStruct ) != HAL_OK ) {
233
233
printf ("OSC initialization failed - initiating soft reset\r\n" );
234
234
NVIC_SystemReset ();
235
235
}
@@ -245,6 +245,19 @@ void xdot_enter_stop_mode() {
245
245
NVIC_SystemReset ();
246
246
}
247
247
248
+ /* Enable the HSI for ADC peripherals */
249
+ RCC_OscInitTypeDef HSIRCC_OscInitStruct ;
250
+ HAL_RCC_GetOscConfig (& HSIRCC_OscInitStruct );
251
+ if ( HSIRCC_OscInitStruct .HSIState != RCC_HSI_ON ) {
252
+ HSIRCC_OscInitStruct .HSIState = RCC_HSI_ON ;
253
+ HSIRCC_OscInitStruct .OscillatorType = RCC_OSCILLATORTYPE_HSI ;
254
+ HSIRCC_OscInitStruct .PLL .PLLState = RCC_PLL_NONE ;
255
+ HAL_StatusTypeDef ret = HAL_RCC_OscConfig (& HSIRCC_OscInitStruct );
256
+ if ( ret != HAL_OK ) {
257
+ printf ("HSI initialization failed - ADC will not function properly\r\n" );
258
+ }
259
+ }
260
+
248
261
SystemCoreClockUpdate ();
249
262
250
263
// clear wakeup flag in power control register
0 commit comments