Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: RTC инициализация
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
MiklPolikov
Кто-нибудь может подсказать, почему один и тот же код, инициализирующий RTC , на STM32L151CBU идёт, а на STM32L151RDT6 нет ? На STM32L151RDT6 не получается писать в регистры RTC .
Единственное предположение - процессоры разных серий чем-то немного отличаются, не смотрю на то что документация на RTC у них одна.

Код
RCC->APB1ENR |= RCC_APB1ENR_PWREN;
  PWR->CR |= PWR_CR_DBP;

  RCC->CSR |= RCC_CSR_LSEON;      //включили генератор LSE 32768
  while(!(RCC->CSR & RCC_CSR_LSERDY)){} //ждём пока включится
  
  RCC->CSR|=RCC_CSR_RTCEN;    //включили RTC

  RCC->CSR|=RCC_CSR_RTCSEL_LSE; // подаём тактовую частоту LSE на RTC
        
  RTC->WPR=0xCA;
  RTC->WPR=0x53;  //отключаем защиту

  RTC->ISR|=RTC_ISR_INIT;
  while(!(RTC->ISR & RTC_ISR_INITF)){}//входим в режим инициализации
  
//// далее запись в регистры у STM32L151CBU идёт  , у STM32L151RDT6 нет
  RTC->PRER=255;
  RTC->PRER|=(127<<16);// устанавливаем  делители, обязательно двумя записями.

.......................................
Jekin
Попробуйте использовать пример для RTC из STM32L1xx Standard Peripherals Firmware Library. Думаю, так вы очень быстро вычислите проблему.
adnega
Попробуйте отключать защиту перед включением генератора в вашем коде.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.