[XXX_F746XG] Move erasing of BkUpR in RTC API

The erasing of back up register is only needed when using LSI in RTC API
pull/1636/head
dbestm 2016-04-04 23:02:48 +02:00 committed by Martin Kojtal
parent b3e2dc9d3c
commit e2cb35e9ad
1 changed files with 12 additions and 10 deletions

View File

@ -46,16 +46,6 @@ void rtc_init(void)
RtcHandle.Instance = RTC; RtcHandle.Instance = RTC;
// Enable Power clock
__PWR_CLK_ENABLE();
// Enable access to Backup domain
HAL_PWR_EnableBkUpAccess();
// Reset Backup domain
__HAL_RCC_BACKUPRESET_FORCE();
__HAL_RCC_BACKUPRESET_RELEASE();
#if !DEVICE_RTC_LSI #if !DEVICE_RTC_LSI
// Enable LSE Oscillator // Enable LSE Oscillator
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
@ -71,6 +61,16 @@ void rtc_init(void)
error("Cannot initialize RTC with LSE\n"); error("Cannot initialize RTC with LSE\n");
} }
#else #else
// Enable Power clock
__PWR_CLK_ENABLE();
// Enable access to Backup domain
HAL_PWR_EnableBkUpAccess();
// Reset Backup domain
__HAL_RCC_BACKUPRESET_FORCE();
__HAL_RCC_BACKUPRESET_RELEASE();
// Enable LSI clock // Enable LSI clock
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured! RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured!
@ -103,6 +103,7 @@ void rtc_init(void)
void rtc_free(void) void rtc_free(void)
{ {
#if DEVICE_RTC_LSI
// Enable Power clock // Enable Power clock
__PWR_CLK_ENABLE(); __PWR_CLK_ENABLE();
@ -115,6 +116,7 @@ void rtc_free(void)
// Disable access to Backup domain // Disable access to Backup domain
HAL_PWR_DisableBkUpAccess(); HAL_PWR_DisableBkUpAccess();
#endif
// Disable LSI and LSE clocks // Disable LSI and LSE clocks
RCC_OscInitTypeDef RCC_OscInitStruct; RCC_OscInitTypeDef RCC_OscInitStruct;