RTC на STM32G070
Jan. 12th, 2023 11:30 pmНачал ковыряться с RTC. В отличие от убогого F103, здесь все с регистрами почти нормально (разве что они в BCD формате, да еще и кривом, что добавляет немало хлопот с лишними вычислениями). Инициализация достаточно просто делается, нужно лишь почитать мануал: убираем защиту от чтения в регистре PWR->CR1, запускаем тактирование, запускаем LSE, настраиваем тактирование RTC от LSE, разблокируем от записи регистры конфигурации RTC (для этого последовательно пишем 0xCA и 0x53 в регистр RTC->WPR), входим в режим инициализации (RTC->ICSR |= RTC_ICSR_INIT), ждем установки флага инициализации, устанавливаем RTC->PRER (0x7f и 0xff), при необходимости выставляем дату, выходим из режима инициализации. Вуаля — RTC работает. Причем, работает он и в режиме отладки, и в процессе софтового сброса.
Со всякими будильниками заморачиваться не буду. Пока написал функцию представления времени в стандартном формате команды date. Потом еще сделаю установку заданных даты/времени и коррекцию частоты (регистром RTC->CALR).
Со всякими будильниками заморачиваться не буду. Пока написал функцию представления времени в стандартном формате команды date. Потом еще сделаю установку заданных даты/времени и коррекцию частоты (регистром RTC->CALR).