Перейти к содержанию

Регистры RTC STM32F1

Регистры RTC STM32F1 — 32-битный счётчик, предделитель, делитель, будильник, флаги и режим настройки — и регистры BKP резервного домена: регистры данных DR1–DR42, калибровка часов, вывод TAMPER.

RTC у STM32F1 — не календарь, а 32-битный счётчик CNT, который увеличивается раз в период TR_CLK = RTCCLK / (PRL + 1). С часовым кварцем LSE 32 768 Гц и PRL = 0x7FFF счётчик считает секунды; дату и время программа вычисляет сама. Будильник срабатывает, когда CNT совпадает с ALR. Источник тактирования RTC выбирается полем RTCSEL регистра RCC_BDCR (RM0008, разделы 18.4 и 6.4).

Регистры RTC и BKP лежат в резервном домене: чтобы писать в них, включите тактирование PWR и BKP и установите DBP в PWR_CR. Запись в CNT, ALR и PRL идёт через режим настройки: дождаться RTOFF = 1, установить CNF, записать регистры, сбросить CNF и снова дождаться RTOFF = 1. После сброса или остановки шины APB1 перед чтением сбросьте флаг RSF и дождитесь его установки.

Регистры BKP_DR1–DR10 (у high-density, XL-density и connectivity line — до DR42) по 16 бит хранят данные, пока есть питание VDD или VBAT. Событие на выводе TAMPER (PC13) при TPE = 1 стирает их все. Поле CAL регистра BKP_RTCCR замедляет часы на 0–121 ppm: оно задаёт число импульсов, пропускаемых на каждые 2^20.

ЭкземплярБазовый адресЕсть у
RTC0x4000 2800всех
BKP0x4000 6C00всех

Регистры блока

РегистрСмещениеНазначениеПосле сброса
RTC_CRH0x00Разрешение прерываний RTC0x0000
RTC_CRL0x04Флаги и режим настройки0x0020
RTC_PRLH0x08Предделитель, старшие 4 бита0x0000
RTC_PRLL0x0CПредделитель, младшие 16 бит0x8000
RTC_DIVH0x10Делитель, старшие 4 бита (только чтение)0x0000
RTC_DIVL0x14Делитель, младшие 16 бит (только чтение)0x8000
RTC_CNTH0x18Счётчик, старшие 16 бит0x0000
RTC_CNTL0x1CСчётчик, младшие 16 бит0x0000
RTC_ALRH0x20Будильник, старшие 16 бит0xFFFF
RTC_ALRL0x24Будильник, младшие 16 бит0xFFFF
BKP_DR10x04Резервный регистр данных 10x0000 0000
BKP_DR20x08Резервный регистр данных 20x0000 0000
BKP_DR30x0CРезервный регистр данных 30x0000 0000
BKP_DR40x10Резервный регистр данных 40x0000 0000
BKP_DR50x14Резервный регистр данных 50x0000 0000
BKP_DR60x18Резервный регистр данных 60x0000 0000
BKP_DR70x1CРезервный регистр данных 70x0000 0000
BKP_DR80x20Резервный регистр данных 80x0000 0000
BKP_DR90x24Резервный регистр данных 90x0000 0000
BKP_DR100x28Резервный регистр данных 100x0000 0000
BKP_RTCCR0x2CКалибровка часов и выход на вывод TAMPER0x0000 0000
BKP_CR0x30Вывод защиты TAMPER0x0000 0000
BKP_CSR0x34Флаги и прерывание TAMPER0x0000 0000
BKP_DR110x40Резервный регистр данных 110x0000 0000
BKP_DR120x44Резервный регистр данных 120x0000 0000
BKP_DR130x48Резервный регистр данных 130x0000 0000
BKP_DR140x4CРезервный регистр данных 140x0000 0000
BKP_DR150x50Резервный регистр данных 150x0000 0000
BKP_DR160x54Резервный регистр данных 160x0000 0000
BKP_DR170x58Резервный регистр данных 170x0000 0000
BKP_DR180x5CРезервный регистр данных 180x0000 0000
BKP_DR190x60Резервный регистр данных 190x0000 0000
BKP_DR200x64Резервный регистр данных 200x0000 0000
BKP_DR210x68Резервный регистр данных 210x0000 0000
BKP_DR220x6CРезервный регистр данных 220x0000 0000
BKP_DR230x70Резервный регистр данных 230x0000 0000
BKP_DR240x74Резервный регистр данных 240x0000 0000
BKP_DR250x78Резервный регистр данных 250x0000 0000
BKP_DR260x7CРезервный регистр данных 260x0000 0000
BKP_DR270x80Резервный регистр данных 270x0000 0000
BKP_DR280x84Резервный регистр данных 280x0000 0000
BKP_DR290x88Резервный регистр данных 290x0000 0000
BKP_DR300x8CРезервный регистр данных 300x0000 0000
BKP_DR310x90Резервный регистр данных 310x0000 0000
BKP_DR320x94Резервный регистр данных 320x0000 0000
BKP_DR330x98Резервный регистр данных 330x0000 0000
BKP_DR340x9CРезервный регистр данных 340x0000 0000
BKP_DR350xA0Резервный регистр данных 350x0000 0000
BKP_DR360xA4Резервный регистр данных 360x0000 0000
BKP_DR370xA8Резервный регистр данных 370x0000 0000
BKP_DR380xACРезервный регистр данных 380x0000 0000
BKP_DR390xB0Резервный регистр данных 390x0000 0000
BKP_DR400xB4Резервный регистр данных 400x0000 0000
BKP_DR410xB8Резервный регистр данных 410x0000 0000
BKP_DR420xBCРезервный регистр данных 420x0000 0000

Конструктор значения

Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.

Значение: 0x00000000

0000 0000 0000 0000 0000 0000 0000 0000

RTC->CRH = 0x00000000;

RTC_CRH — разрешение прерываний RTC

Смещение 0x00, адрес 0x4000 2800, 32 бит, после сброса 0x0000. В коде: RTC->CRH.

31302928272625242322212019181716
—
1514131211109876543210
—OWIEALRIESECIE
  • OWIE (бит 2) — Прерывание по переполнению счётчика.
  • ALRIE (бит 1) — Прерывание будильника.
  • SECIE (бит 0) — Секундное прерывание.

RTC_CRL — флаги и режим настройки

Смещение 0x04, адрес 0x4000 2804, 32 бит, после сброса 0x0020. В коде: RTC->CRL.

31302928272625242322212019181716
—
1514131211109876543210
—RTOFFCNFRSFOWFALRFSECF
  • RTOFF (бит 5) — Последняя запись в RTC завершена; писать можно только при RTOFF = 1.
  • CNF (бит 4) — Режим настройки: запись CNT, ALR и PRL выполняется при сбросе бита.
  • RSF (бит 3) — Регистры синхронизированы; сбрасывается программно перед чтением.
  • OWF (бит 2) — Переполнение 32-битного счётчика; сбрасывается записью 0.
  • ALRF (бит 1) — Сработал будильник; сбрасывается записью 0.
  • SECF (бит 0) — Секундный флаг; сбрасывается записью 0.

RTC_PRLH — предделитель, старшие 4 бита

Смещение 0x08, адрес 0x4000 2808, 32 бит, после сброса 0x0000. В коде: RTC->PRLH.

31302928272625242322212019181716
—
1514131211109876543210
—PRL
  • PRL (биты 3:0) — Старшие биты 19:16 предделителя.

RTC_PRLL — предделитель, младшие 16 бит

Смещение 0x0C, адрес 0x4000 280C, 32 бит, после сброса 0x8000. В коде: RTC->PRLL.

31302928272625242322212019181716
—
1514131211109876543210
PRL
  • PRL (биты 15:0) — Младшие биты 15:0 предделителя.

RTC_DIVH — делитель, старшие 4 бита (только чтение)

Смещение 0x10, адрес 0x4000 2810, 32 бит, после сброса 0x0000. В коде: RTC->DIVH.

31302928272625242322212019181716
—
1514131211109876543210
—RTC_DIV
  • RTC_DIV (биты 3:0) — Старшие биты текущего значения делителя.

RTC_DIVL — делитель, младшие 16 бит (только чтение)

Смещение 0x14, адрес 0x4000 2814, 32 бит, после сброса 0x8000. В коде: RTC->DIVL.

31302928272625242322212019181716
—
1514131211109876543210
RTC_DIV
  • RTC_DIV (биты 15:0) — Младшие биты текущего значения делителя.

RTC_CNTH — счётчик, старшие 16 бит

Смещение 0x18, адрес 0x4000 2818, 32 бит, после сброса 0x0000. В коде: RTC->CNTH.

31302928272625242322212019181716
—
1514131211109876543210
RTC_CNT
  • RTC_CNT (биты 15:0) — Старшие 16 бит счётчика.

RTC_CNTL — счётчик, младшие 16 бит

Смещение 0x1C, адрес 0x4000 281C, 32 бит, после сброса 0x0000. В коде: RTC->CNTL.

31302928272625242322212019181716
—
1514131211109876543210
RTC_CNT
  • RTC_CNT (биты 15:0) — Младшие 16 бит счётчика.

RTC_ALRH — будильник, старшие 16 бит

Смещение 0x20, адрес 0x4000 2820, 32 бит, после сброса 0xFFFF. В коде: RTC->ALRH.

31302928272625242322212019181716
—
1514131211109876543210
RTC_ALR
  • RTC_ALR (биты 15:0) — Старшие 16 бит значения будильника.

RTC_ALRL — будильник, младшие 16 бит

Смещение 0x24, адрес 0x4000 2824, 32 бит, после сброса 0xFFFF. В коде: RTC->ALRL.

31302928272625242322212019181716
—
1514131211109876543210
RTC_ALR
  • RTC_ALR (биты 15:0) — Младшие 16 бит значения будильника.

BKP_DR1 — резервный регистр данных 1

Смещение 0x04, адрес 0x4000 6C04, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR1.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR2 — резервный регистр данных 2

Смещение 0x08, адрес 0x4000 6C08, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR2.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR3 — резервный регистр данных 3

Смещение 0x0C, адрес 0x4000 6C0C, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR3.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR4 — резервный регистр данных 4

Смещение 0x10, адрес 0x4000 6C10, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR4.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR5 — резервный регистр данных 5

Смещение 0x14, адрес 0x4000 6C14, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR5.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR6 — резервный регистр данных 6

Смещение 0x18, адрес 0x4000 6C18, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR6.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR7 — резервный регистр данных 7

Смещение 0x1C, адрес 0x4000 6C1C, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR7.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR8 — резервный регистр данных 8

Смещение 0x20, адрес 0x4000 6C20, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR8.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR9 — резервный регистр данных 9

Смещение 0x24, адрес 0x4000 6C24, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR9.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR10 — резервный регистр данных 10

Смещение 0x28, адрес 0x4000 6C28, 32 бит, после сброса 0x0000 0000. В коде: BKP->DR10.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_RTCCR — калибровка часов и выход на вывод TAMPER

Смещение 0x2C, адрес 0x4000 6C2C, 32 бит, после сброса 0x0000 0000. В коде: BKP->RTCCR.

31302928272625242322212019181716
—
1514131211109876543210
—ASOSASOECCOCAL
  • ASOS (бит 9) — Сигнал на выводе TAMPER: импульс будильника или секундный импульс.
    ASOSЗначение
    0Импульс будильника
    1Секундный импульс
  • ASOE (бит 8) — Вывод будильника или секундных импульсов на TAMPER.
  • CCO (бит 7) — Вывод частоты RTC / 64 на TAMPER для калибровки.
  • CAL (биты 6:0) — Калибровка: число импульсов, пропускаемых на каждые 2^20 (0–121 ppm).

BKP_CR — вывод защиты TAMPER

Смещение 0x30, адрес 0x4000 6C30, 32 бит, после сброса 0x0000 0000. В коде: BKP->CR.

31302928272625242322212019181716
—
1514131211109876543210
—TPALTPE
  • TPAL (бит 1) — Активный уровень вывода TAMPER.
    TPALЗначение
    0Высокий уровень стирает регистры
    1Низкий уровень стирает регистры
  • TPE (бит 0) — Включение вывода защиты TAMPER.

BKP_CSR — флаги и прерывание TAMPER

Смещение 0x34, адрес 0x4000 6C34, 32 бит, после сброса 0x0000 0000. В коде: BKP->CSR.

31302928272625242322212019181716
—
1514131211109876543210
—TIFTEF—TPIECTICTE
  • TIF (бит 9) — Флаг прерывания TAMPER.
  • TEF (бит 8) — Флаг события TAMPER: резервные регистры стёрты.
  • TPIE (бит 2) — Прерывание по событию TAMPER.
  • CTI (бит 1) — Сброс флага TIF записью единицы.
  • CTE (бит 0) — Сброс флага TEF записью единицы.

BKP_DR11 — резервный регистр данных 11

Смещение 0x40, адрес 0x4000 6C40, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR11.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR12 — резервный регистр данных 12

Смещение 0x44, адрес 0x4000 6C44, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR12.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR13 — резервный регистр данных 13

Смещение 0x48, адрес 0x4000 6C48, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR13.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR14 — резервный регистр данных 14

Смещение 0x4C, адрес 0x4000 6C4C, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR14.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR15 — резервный регистр данных 15

Смещение 0x50, адрес 0x4000 6C50, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR15.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR16 — резервный регистр данных 16

Смещение 0x54, адрес 0x4000 6C54, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR16.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR17 — резервный регистр данных 17

Смещение 0x58, адрес 0x4000 6C58, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR17.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR18 — резервный регистр данных 18

Смещение 0x5C, адрес 0x4000 6C5C, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR18.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR19 — резервный регистр данных 19

Смещение 0x60, адрес 0x4000 6C60, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR19.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR20 — резервный регистр данных 20

Смещение 0x64, адрес 0x4000 6C64, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR20.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR21 — резервный регистр данных 21

Смещение 0x68, адрес 0x4000 6C68, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR21.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR22 — резервный регистр данных 22

Смещение 0x6C, адрес 0x4000 6C6C, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR22.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR23 — резервный регистр данных 23

Смещение 0x70, адрес 0x4000 6C70, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR23.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR24 — резервный регистр данных 24

Смещение 0x74, адрес 0x4000 6C74, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR24.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR25 — резервный регистр данных 25

Смещение 0x78, адрес 0x4000 6C78, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR25.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR26 — резервный регистр данных 26

Смещение 0x7C, адрес 0x4000 6C7C, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR26.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR27 — резервный регистр данных 27

Смещение 0x80, адрес 0x4000 6C80, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR27.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR28 — резервный регистр данных 28

Смещение 0x84, адрес 0x4000 6C84, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR28.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR29 — резервный регистр данных 29

Смещение 0x88, адрес 0x4000 6C88, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR29.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR30 — резервный регистр данных 30

Смещение 0x8C, адрес 0x4000 6C8C, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR30.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR31 — резервный регистр данных 31

Смещение 0x90, адрес 0x4000 6C90, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR31.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR32 — резервный регистр данных 32

Смещение 0x94, адрес 0x4000 6C94, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR32.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR33 — резервный регистр данных 33

Смещение 0x98, адрес 0x4000 6C98, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR33.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR34 — резервный регистр данных 34

Смещение 0x9C, адрес 0x4000 6C9C, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR34.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR35 — резервный регистр данных 35

Смещение 0xA0, адрес 0x4000 6CA0, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR35.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR36 — резервный регистр данных 36

Смещение 0xA4, адрес 0x4000 6CA4, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR36.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR37 — резервный регистр данных 37

Смещение 0xA8, адрес 0x4000 6CA8, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR37.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR38 — резервный регистр данных 38

Смещение 0xAC, адрес 0x4000 6CAC, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR38.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR39 — резервный регистр данных 39

Смещение 0xB0, адрес 0x4000 6CB0, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR39.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR40 — резервный регистр данных 40

Смещение 0xB4, адрес 0x4000 6CB4, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR40.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR41 — резервный регистр данных 41

Смещение 0xB8, адрес 0x4000 6CB8, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR41.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

BKP_DR42 — резервный регистр данных 42

Смещение 0xBC, адрес 0x4000 6CBC, 32 бит, после сброса 0x0000 0000; регистр есть только у STM32F101xE/xG, STM32F103xE/xG, STM32F105, STM32F107. В коде: BKP->DR42.

31302928272625242322212019181716
—
1514131211109876543210
D
  • D (биты 15:0) — 16 бит данных, хранящихся в резервном домене.

Частые вопросы

Как настроить RTC STM32F103 на счёт секунд?

Включите тактирование PWR и BKP, установите DBP, включите LSE (LSEON в RCC_BDCR) и дождитесь LSERDY, выберите RTCSEL = 01 и включите RTCEN. Затем дождитесь RTOFF = 1, установите CNF, запишите PRLH = 0 и PRLL = 0x7FFF, сбросьте CNF и дождитесь RTOFF. Счётчик RTC_CNT будет увеличиваться раз в секунду.

Почему после сброса время сбивается?

Если программа при каждом старте заново настраивает RTC, она перезаписывает счётчик. Признак того, что часы уже настроены, удобно хранить в резервном регистре: например, записать метку в BKP_DR1 и при старте проверять её, прежде чем трогать RTC.

Как вывести секундные импульсы на вывод?

Установите ASOE и ASOS = 1 в BKP_RTCCR — на вывод TAMPER пойдут секундные импульсы длительностью в один период RTCCLK. Вывод TAMPER при этом нельзя включать как вход защиты (TPE = 0).

Источники

  1. STMicroelectronics. RM0008: Reference manual (Rev 21) — раздел 18.4 и 6.4: описание регистров, назначение полей и значения после сброса
  2. STMicroelectronics. cmsis-device-f1 v4.3.5: заголовки CMSIS stm32f101x6.h, stm32f101xb.h, stm32f101xe.h, stm32f101xg.h, stm32f102x6.h, stm32f102xb.h, stm32f103x6.h, stm32f103xb.h, stm32f103xe.h, stm32f103xg.h, stm32f105xc.h, stm32f107xc.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры STM32F1

Калькуляторы и статьи