Я как почитал документацию к RTC STM32F103, вот уж знатно
подохренел: это ж каким рукожопым надо быть, чтобы так убого
сделать? А вот с BCD — да, гемор. Но ничего, вполне решаемо: https://github.com/eddyem/stm32samples/blob/master/G0%3AG070/RTC/rtc.c#L47
Кстати, оказывается, задать время можно совершенно любое: МК аппаратно правильность данных не проверяет. Просто потом получается хрень какая-то… Поэтому все равно нужно добавлять проверку на все эти високосы и т.п. Ну, а что до leap seconds - то это только с интеграцией с GPS (по понятным причинам: к сожалению, составить расписание добавления високосных секунд на будущее просто невозможно)…