mbed library sources. Supersedes mbed-src.
Fork of mbed by
Diff: targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c
- Revision:
- 111:86e691153a57
- Parent:
- 103:173fc4c67e73
- Child:
- 144:ef7eb2e8f9f7
--- a/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c Wed Apr 13 16:00:11 2016 +0100 +++ b/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c Fri Apr 15 11:00:11 2016 +0100 @@ -65,9 +65,9 @@ HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct); rtc_freq = LSE_VALUE; } else { - error("Cannot initialize RTC with LSE\n"); + error("Cannot initialize RTC with LSE\n"); } -#else +#else // Enable Power clock __HAL_RCC_PWR_CLK_ENABLE(); @@ -78,22 +78,22 @@ __HAL_RCC_BACKUPRESET_FORCE(); __HAL_RCC_BACKUPRESET_RELEASE(); - // Enable LSI clock - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured! - RCC_OscInitStruct.LSEState = RCC_LSE_OFF; - RCC_OscInitStruct.LSIState = RCC_LSI_ON; - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { - error("Cannot initialize RTC with LSI\n"); - } - // Connect LSI to RTC - PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; - PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { - error("Cannot initialize RTC with LSI\n"); - } - // This value is LSI typical value. To be measured precisely using a timer input capture for example. - rtc_freq = 40000; + // Enable LSI clock + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured! + RCC_OscInitStruct.LSEState = RCC_LSE_OFF; + RCC_OscInitStruct.LSIState = RCC_LSI_ON; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { + error("Cannot initialize RTC with LSI\n"); + } + // Connect LSI to RTC + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; + PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { + error("Cannot initialize RTC with LSI\n"); + } + // This value is LSI typical value (see device datasheet) + rtc_freq = 32000; #endif // Check if RTC is already initialized @@ -141,7 +141,7 @@ #if DEVICE_RTC_LSI rtc_inited = 0; -#endif +#endif } int rtc_isenabled(void)