mbed library sources. Supersedes mbed-src.
Dependents: Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more
Diff: targets/TARGET_STM/TARGET_STM32L1/TARGET_XDOT_L151CC/xdot_low_power.c
- Revision:
- 168:9672193075cf
- Parent:
- 149:156823d33999
- Child:
- 173:e131a1973e81
--- a/targets/TARGET_STM/TARGET_STM32L1/TARGET_XDOT_L151CC/xdot_low_power.c Wed Jun 21 17:46:44 2017 +0100 +++ b/targets/TARGET_STM/TARGET_STM32L1/TARGET_XDOT_L151CC/xdot_low_power.c Thu Jul 06 15:42:05 2017 +0100 @@ -218,18 +218,18 @@ HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); RCC_ClkInitTypeDef RCC_ClkInitStruct; - RCC_OscInitTypeDef RCC_OscInitStruct; + RCC_OscInitTypeDef HSERCC_OscInitStruct; /* Enable HSE and HSI48 oscillators and activate PLL with HSE as source */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; /* External 24 MHz xtal on OSC_IN/OSC_OUT */ - RCC_OscInitStruct.HSIState = RCC_HSI_OFF; + HSERCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI; + HSERCC_OscInitStruct.HSEState = RCC_HSE_ON; /* External 24 MHz xtal on OSC_IN/OSC_OUT */ + HSERCC_OscInitStruct.HSIState = RCC_HSI_OFF; // SYSCLK = 32 MHz ((24 MHz * 4) / 3) // USBCLK = 48 MHz ((24 MHz * 4) / 2) --> USB OK - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4; - RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3; - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { + HSERCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + HSERCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + HSERCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4; + HSERCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV3; + if (HAL_RCC_OscConfig(&HSERCC_OscInitStruct) != HAL_OK) { printf("OSC initialization failed - initiating soft reset\r\n"); NVIC_SystemReset(); } @@ -245,6 +245,19 @@ NVIC_SystemReset(); } + /* Enable the HSI for ADC peripherals */ + RCC_OscInitTypeDef HSIRCC_OscInitStruct; + HAL_RCC_GetOscConfig(&HSIRCC_OscInitStruct); + if ( HSIRCC_OscInitStruct.HSIState != RCC_HSI_ON ) { + HSIRCC_OscInitStruct.HSIState = RCC_HSI_ON; + HSIRCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; + HSIRCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + HAL_StatusTypeDef ret = HAL_RCC_OscConfig(&HSIRCC_OscInitStruct); + if ( ret != HAL_OK ) { + printf("HSI initialization failed - ADC will not function properly\r\n"); + } + } + SystemCoreClockUpdate(); // clear wakeup flag in power control register