Регистры TIM STM32F0
Регистры таймеров STM32F0: расширенного TIM1, 32-битного TIM2, TIM3, базовых TIM6 и TIM7, TIM14 и TIM15–TIM17 — счёт, предделитель, период, режимы каналов, ШИМ и захват, синхронизация таймеров, мёртвое время и аварийный останов.
Регистры таймеров STM32F0 устроены так же, как у STM32F4: TIMx_CR1, CCMR1/CCMR2 с режимами каналов, CCER с включением и полярностью, PSC, ARR и CCRx. Таймеры отличаются набором функций: TIM1 — четыре канала с комплементарными выходами и мёртвым временем, TIM2 — 32-битный, TIM3 — 16-битный на четыре канала, TIM14 — один канал, TIM15 — два канала, TIM16 и TIM17 — по одному с комплементарным выходом, TIM6 и TIM7 — только счёт и запуск ЦАП.
Все таймеры STM32F0 тактируются от PCLK, при делителе APB больше 1 — удвоенной частотой. Частота счёта — fTIM / (PSC + 1), период — (ARR + 1) тактов. Поле OCxM задаёт режим выхода: 110 — ШИМ 1, 111 — ШИМ 2; у TIM1, TIM15–TIM17 выходы включает бит MOE регистра BDTR.
Значения после сброса — из глав 17–21 RM0091; поля, которых нет у части таймеров, страница показывает, но запись в них не действует.
| Экземпляр | Базовый адрес | Есть у |
|---|---|---|
| TIM2 | 0x4000 0000 | всех |
| TIM3 | 0x4000 0400 | всех |
| TIM6 | 0x4000 1000 | STM32F051, STM32F058, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098 |
| TIM7 | 0x4000 1400 | STM32F071, STM32F072, STM32F078, STM32F091, STM32F098 |
| TIM14 | 0x4000 2000 | всех |
| TIM1 | 0x4001 2C00 | всех |
| TIM15 | 0x4001 4000 | STM32F051, STM32F058, STM32F071, STM32F072, STM32F078, STM32F091, STM32F098 |
| TIM16 | 0x4001 4400 | всех |
| TIM17 | 0x4001 4800 | всех |
Регистры блока
| Регистр | Смещение | Назначение | После сброса |
|---|---|---|---|
| TIMx_CR1 | 0x00 | Счёт, режим одного импульса, буферизация | 0x0000 |
| TIMx_CR2 | 0x04 | Ведущий режим, DMA, состояния выходов | 0x0000 |
| TIMx_SMCR | 0x08 | Ведомый режим, триггер и внешний такт | 0x0000 |
| TIMx_DIER | 0x0C | Разрешение прерываний и запросов DMA | 0x0000 |
| TIMx_SR | 0x10 | Флаги прерываний | 0x0000 |
| TIMx_EGR | 0x14 | Программные события | 0x0000 |
| TIMx_CCMR1 | 0x18 | Режимы каналов 1 и 2 | 0x0000 |
| TIMx_CCMR2 | 0x1C | Режимы каналов 3 и 4 | 0x0000 |
| TIMx_CCER | 0x20 | Включение и полярность каналов | 0x0000 |
| TIMx_CNT | 0x24 | Счётчик | TIM1, TIM14, TIM15, TIM16, TIM17, TIM6, TIM7: 0x0000; TIM2, TIM3: 0x0000 0000 |
| TIMx_PSC | 0x28 | Предделитель | 0x0000 |
| TIMx_ARR | 0x2C | Период (значение перезагрузки) | TIM1, TIM14, TIM15, TIM16, TIM17, TIM6, TIM7: 0xFFFF; TIM2, TIM3: 0xFFFF FFFF |
| TIMx_RCR | 0x30 | Счётчик повторений | 0x0000 |
| TIMx_CCR1 | 0x34 | Сравнение и захват, канал 1 | TIM1, TIM14, TIM15, TIM16, TIM17: 0x0000; TIM2, TIM3: 0x0000 0000 |
| TIMx_CCR2 | 0x38 | Сравнение и захват, канал 2 | TIM1, TIM15: 0x0000; TIM2, TIM3: 0x0000 0000 |
| TIMx_CCR3 | 0x3C | Сравнение и захват, канал 3 | TIM1: 0x0000; TIM2, TIM3: 0x0000 0000 |
| TIMx_CCR4 | 0x40 | Сравнение и захват, канал 4 | TIM1: 0x0000; TIM2, TIM3: 0x0000 0000 |
| TIMx_BDTR | 0x44 | Аварийный останов и мёртвое время | 0x0000 |
| TIMx_DCR | 0x48 | Пакетная передача DMA | 0x0000 |
| TIMx_DMAR | 0x4C | Адрес пакетной передачи DMA | 0x0000 |
Конструктор значения
Выберите регистр и значения полей — конструктор покажет 32-битное значение и строку на C с макросами CMSIS. Поля, которые вы не меняете, берутся из значения после сброса.
Значение: 0x00000000
0000 0000 0000 0000 0000 0000 0000 0000
TIM2->CR1 = 0x00000000;TIMx_CR1 — счёт, режим одного импульса, буферизация
Смещение 0x00, 32 бит, после сброса 0x0000. В коде: TIM2->CR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CKD | ARPE | CMS | DIR | OPM | URS | UDIS | CEN | |||||||
- CKD (биты 9:8) — Период дискретизации цифровых фильтров tDTS относительно такта таймера.
- ARPE (бит 7) — Буферизация ARR: новое значение действует с события обновления.
- CMS (биты 6:5) — Счёт по фронту или центрированный (вверх и вниз).
- DIR (бит 4) — Направление счёта.
- OPM (бит 3) — Режим одного импульса: счётчик останавливается на событии обновления.
- URS (бит 2) — Что вызывает прерывание и запрос DMA обновления.
- UDIS (бит 1) — Запрет события обновления.
- CEN (бит 0) — Включение счётчика.
TIMx_CR2 — ведущий режим, DMA, состояния выходов
Смещение 0x04, 32 бит, после сброса 0x0000. В коде: TIM2->CR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | OIS4 | OIS3N | OIS3 | OIS2N | OIS2 | OIS1N | OIS1 | TI1S | MMS | CCDS | CCUS | — | CCPC | ||
- OIS2–OIS4 (по биту на каждый y, положение — на карте битов) — Уровень выхода OCy при MOE = 0 (TIM1, TIM15–TIM17).
- OIS3N (бит 13) — Уровень выхода OC3N при MOE = 0 (TIM1, TIM15–TIM17).
- OIS2N (бит 11) — Уровень выхода OC2N при MOE = 0 (TIM1, TIM15–TIM17).
- OIS1N (бит 9) — Уровень выхода OC1N при MOE = 0 (TIM1, TIM15–TIM17).
- OIS1 (бит 8) — Уровень выхода OC1 при MOE = 0 (TIM1, TIM15–TIM17).
- TI1S (бит 7) — Вход TI1: вывод CH1 или исключающее ИЛИ выводов CH1–CH3 (датчики Холла).
- MMS (биты 6:4) — Сигнал TRGO для ведомых таймеров, АЦП и ЦАП.
- CCDS (бит 3) — Запросы DMA каналов: по событию канала или по обновлению.
- CCUS (бит 2) — Обновление буферизованных битов каналов: только COMG или ещё фронт TRGI.
- CCPC (бит 0) — Буферизация CCxE, CCxNE и OCxM до события коммутации COM (TIM1, TIM15–TIM17).
TIMx_SMCR — ведомый режим, триггер и внешний такт
Смещение 0x08, 32 бит, после сброса 0x0000. В коде: TIM2->SMCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ETP | ECE | ETPS | ETF | MSM | TS | OCCS | SMS | ||||||||
- ETP (бит 15) — Полярность внешнего входа ETR.
- ECE (бит 14) — Внешнее тактирование, режим 2: счёт по фронтам ETR.
- ETPS (биты 13:12) — Предделитель входа ETR: частота ETRP не выше 1/4 такта таймера.
- ETF (биты 11:8) — Цифровой фильтр входа ETR.
- MSM (бит 7) — Задержка события TRGI для синхронного запуска ведомых таймеров.
- TS (биты 6:4) — Источник триггера TRGI.
- OCCS (бит 3) — Источник сигнала OCREF_CLR: вход ETRF или внутренний сигнал (компаратор).
- SMS (биты 2:0) — Режим ведомого: энкодер, сброс, пропуск, запуск или внешнее тактирование.
TIMx_DIER — разрешение прерываний и запросов DMA
Смещение 0x0C, 32 бит, после сброса 0x0000. В коде: TIM2->DIER.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | TDE | COMDE | CC4DE | CC3DE | CC2DE | CC1DE | UDE | BIE | TIE | COMIE | CC4IE | CC3IE | CC2IE | CC1IE | UIE |
- TDE (бит 14) — Запрос DMA по триггеру.
- COMDE (бит 13) — Запрос DMA по событию COM.
- CC4DE (бит 12) — Запрос DMA канала 4.
- CC3DE (бит 11) — Запрос DMA канала 3.
- CC2DE (бит 10) — Запрос DMA канала 2.
- CC1DE (бит 9) — Запрос DMA канала 1.
- UDE (бит 8) — Запрос DMA по обновлению.
- BIE (бит 7) — Прерывание по аварийному входу BRK (TIM1, TIM15–TIM17).
- TIE (бит 6) — Прерывание по триггеру.
- COMIE (бит 5) — Прерывание по событию коммутации COM (TIM1, TIM15–TIM17).
- CC4IE (бит 4) — Прерывание канала 4.
- CC3IE (бит 3) — Прерывание канала 3.
- CC2IE (бит 2) — Прерывание канала 2.
- CC1IE (бит 1) — Прерывание канала 1.
- UIE (бит 0) — Прерывание по обновлению.
TIMx_SR — флаги прерываний
Смещение 0x10, 32 бит, после сброса 0x0000. В коде: TIM2->SR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | CC4OF | CC3OF | CC2OF | CC1OF | — | BIF | TIF | COMIF | CC4IF | CC3IF | CC2IF | CC1IF | UIF | ||
- CC4OF (бит 12) — Повторный захват канала 4, пока флаг CC4IF не сброшен.
- CC3OF (бит 11) — Повторный захват канала 3, пока флаг CC3IF не сброшен.
- CC2OF (бит 10) — Повторный захват канала 2, пока флаг CC2IF не сброшен.
- CC1OF (бит 9) — Повторный захват канала 1, пока флаг CC1IF не сброшен.
- BIF (бит 7) — Флаг аварийного входа BRK.
- TIF (бит 6) — Флаг триггера.
- COMIF (бит 5) — Флаг события коммутации COM.
- CC4IF (бит 4) — Флаг канала 4: совпадение при сравнении или захват; сбрасывается записью 0, при захвате — и чтением CCR4.
- CC3IF (бит 3) — Флаг канала 3: совпадение при сравнении или захват; сбрасывается записью 0, при захвате — и чтением CCR3.
- CC2IF (бит 2) — Флаг канала 2: совпадение при сравнении или захват; сбрасывается записью 0, при захвате — и чтением CCR2.
- CC1IF (бит 1) — Флаг канала 1: совпадение при сравнении или захват; сбрасывается записью 0, при захвате — и чтением CCR1.
- UIF (бит 0) — Флаг обновления; сбрасывается записью 0.
TIMx_EGR — программные события
Смещение 0x14, 32 бит, после сброса 0x0000. В коде: TIM2->EGR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | BG | TG | COMG | CC4G | CC3G | CC2G | CC1G | UG | |||||||
- BG (бит 7) — Программное аварийное отключение (как по входу BRK).
- TG (бит 6) — Программный триггер.
- COMG (бит 5) — Программное событие коммутации COM.
- CC4G (бит 4) — Программное событие канала 4.
- CC3G (бит 3) — Программное событие канала 3.
- CC2G (бит 2) — Программное событие канала 2.
- CC1G (бит 1) — Программное событие канала 1.
- UG (бит 0) — Программное обновление: перезапуск счётчика и загрузка буферов.
TIMx_CCMR1 — режимы каналов 1 и 2
Смещение 0x18, 32 бит, после сброса 0x0000. В коде: TIM2->CCMR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OC2CE | OC2M | OC2PE | OC2FE | CC2S | OC1CE | OC1M | OC1PE | OC1FE | CC1S | ||||||
- OC2CE (бит 15) — Сброс OC2REF высоким уровнем на входе ETRF.
- IC2F (биты 15:12) — Цифровой фильтр входа 2 (режим захвата).
- OC2M (биты 14:12) — Режим выхода 2: ШИМ, переключение, принудительный уровень.
- OC2PE (бит 11) — Буферизация CCR2: новое значение с события обновления.
- IC2PSC (биты 11:10) — Предделитель захвата 2: каждое 1, 2, 4 или 8-е событие (режим захвата).
- OC2FE (бит 10) — Ускоренная реакция выхода 2 на триггер (режимы ШИМ).
- CC2S (биты 9:8) — Канал 2: выход или вход и источник захвата; меняется при CC2E = 0.
- OC1CE (бит 7) — Сброс OC1REF высоким уровнем на входе ETRF.
- IC1F (биты 7:4) — Цифровой фильтр входа 1 (режим захвата).
- OC1M (биты 6:4) — Режим выхода 1: ШИМ, переключение, принудительный уровень.
- OC1PE (бит 3) — Буферизация CCR1: новое значение с события обновления.
- IC1PSC (биты 3:2) — Предделитель захвата 1: каждое 1, 2, 4 или 8-е событие (режим захвата).
- OC1FE (бит 2) — Ускоренная реакция выхода 1 на триггер (режимы ШИМ).
- CC1S (биты 1:0) — Канал 1: выход или вход и источник захвата; меняется при CC1E = 0.
TIMx_CCMR2 — режимы каналов 3 и 4
Смещение 0x1C, 32 бит, после сброса 0x0000. В коде: TIM2->CCMR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| OC4CE | OC4M | OC4PE | OC4FE | CC4S | OC3CE | OC3M | OC3PE | OC3FE | CC3S | ||||||
- OC4CE (бит 15) — Сброс OC4REF высоким уровнем на входе ETRF.
- IC4F (биты 15:12) — Цифровой фильтр входа 4 (режим захвата).
- OC4M (биты 14:12) — Режим выхода 4: ШИМ, переключение, принудительный уровень.
- OC4PE (бит 11) — Буферизация CCR4: новое значение с события обновления.
- IC4PSC (биты 11:10) — Предделитель захвата 4: каждое 1, 2, 4 или 8-е событие (режим захвата).
- OC4FE (бит 10) — Ускоренная реакция выхода 4 на триггер (режимы ШИМ).
- CC4S (биты 9:8) — Канал 4: выход или вход и источник захвата; меняется при CC4E = 0.
- OC3CE (бит 7) — Сброс OC3REF высоким уровнем на входе ETRF.
- IC3F (биты 7:4) — Цифровой фильтр входа 3 (режим захвата).
- OC3M (биты 6:4) — Режим выхода 3: ШИМ, переключение, принудительный уровень.
- OC3PE (бит 3) — Буферизация CCR3: новое значение с события обновления.
- IC3PSC (биты 3:2) — Предделитель захвата 3: каждое 1, 2, 4 или 8-е событие (режим захвата).
- OC3FE (бит 2) — Ускоренная реакция выхода 3 на триггер (режимы ШИМ).
- CC3S (биты 1:0) — Канал 3: выход или вход и источник захвата; меняется при CC3E = 0.
TIMx_CCER — включение и полярность каналов
Смещение 0x20, 32 бит, после сброса 0x0000. В коде: TIM2->CCER.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CC4NP | — | CC4P | CC4E | CC3NP | CC3NE | CC3P | CC3E | CC2NP | CC2NE | CC2P | CC2E | CC1NP | CC1NE | CC1P | CC1E |
- CC4NP (бит 15) — Полярность комплементарного выхода 4N.
- CC4P (бит 13) — Полярность выхода 4; в режиме захвата — фронт захвата.
- CC4E (бит 12) — Включение выхода 4; в режиме захвата — разрешение захвата.
- CC3NP (бит 11) — Полярность комплементарного выхода 3N.
- CC3NE (бит 10) — Включение комплементарного выхода 3N (TIM1, TIM15–TIM17).
- CC3P (бит 9) — Полярность выхода 3; в режиме захвата — фронт захвата.
- CC3E (бит 8) — Включение выхода 3; в режиме захвата — разрешение захвата.
- CC2NP (бит 7) — Полярность комплементарного выхода 2N.
- CC2NE (бит 6) — Включение комплементарного выхода 2N (TIM1, TIM15–TIM17).
- CC2P (бит 5) — Полярность выхода 2; в режиме захвата — фронт захвата.
- CC2E (бит 4) — Включение выхода 2; в режиме захвата — разрешение захвата.
- CC1NP (бит 3) — Полярность комплементарного выхода 1N.
- CC1NE (бит 2) — Включение комплементарного выхода 1N (TIM1, TIM15–TIM17).
- CC1P (бит 1) — Полярность выхода 1; в режиме захвата — фронт захвата.
- CC1E (бит 0) — Включение выхода 1; в режиме захвата — разрешение захвата.
TIMx_CNT — счётчик
Смещение 0x24, 32 бит, после сброса TIM1, TIM14, TIM15, TIM16, TIM17, TIM6, TIM7: 0x0000; TIM2, TIM3: 0x0000 0000. В коде: TIM2->CNT.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| CNT | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CNT | |||||||||||||||
- CNT (биты 31:0) — Значение счётчика: 32 бита у TIM2, у остальных таймеров 16.
TIMx_PSC — предделитель
Смещение 0x28, 32 бит, после сброса 0x0000. В коде: TIM2->PSC.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PSC | |||||||||||||||
- PSC (биты 15:0) — Предделитель: частота счёта = такт таймера / (PSC + 1).
TIMx_ARR — период (значение перезагрузки)
Смещение 0x2C, 32 бит, после сброса TIM1, TIM14, TIM15, TIM16, TIM17, TIM6, TIM7: 0xFFFF; TIM2, TIM3: 0xFFFF FFFF. В коде: TIM2->ARR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ARR | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ARR | |||||||||||||||
- ARR (биты 31:0) — Период: счётчик считает от 0 до ARR, всего ARR + 1 отсчётов.
TIMx_RCR — счётчик повторений
Смещение 0x30, 32 бит, после сброса 0x0000. В коде: TIM2->RCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | REP | ||||||||||||||
- REP (биты 7:0) — Счётчик повторений: событие обновления раз в REP + 1 периодов.
TIMx_CCR1 — сравнение и захват, канал 1
Смещение 0x34, 32 бит, после сброса TIM1, TIM14, TIM15, TIM16, TIM17: 0x0000; TIM2, TIM3: 0x0000 0000. В коде: TIM2->CCR1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR1 | |||||||||||||||
- CCR1 (биты 15:0) — Значение сравнения канала 1 или захваченное значение счётчика.
TIMx_CCR2 — сравнение и захват, канал 2
Смещение 0x38, 32 бит, после сброса TIM1, TIM15: 0x0000; TIM2, TIM3: 0x0000 0000. В коде: TIM2->CCR2.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR2 | |||||||||||||||
- CCR2 (биты 15:0) — Значение сравнения канала 2 или захваченное значение счётчика.
TIMx_CCR3 — сравнение и захват, канал 3
Смещение 0x3C, 32 бит, после сброса TIM1: 0x0000; TIM2, TIM3: 0x0000 0000. В коде: TIM2->CCR3.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR3 | |||||||||||||||
- CCR3 (биты 15:0) — Значение сравнения канала 3 или захваченное значение счётчика.
TIMx_CCR4 — сравнение и захват, канал 4
Смещение 0x40, 32 бит, после сброса TIM1: 0x0000; TIM2, TIM3: 0x0000 0000. В коде: TIM2->CCR4.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CCR4 | |||||||||||||||
- CCR4 (биты 15:0) — Значение сравнения канала 4 или захваченное значение счётчика.
TIMx_BDTR — аварийный останов и мёртвое время
Смещение 0x44, 32 бит, после сброса 0x0000. В коде: TIM2->BDTR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MOE | AOE | BKP | BKE | OSSR | OSSI | LOCK | DTG | ||||||||
- MOE (бит 15) — Главное включение выходов; сбрасывается аппаратно по входу BRK.
- AOE (бит 14) — Автоматическая установка MOE на событии обновления.
- BKP (бит 13) — Полярность аварийного входа BRK.
- BKE (бит 12) — Включение аварийного входа BRK и сигнала отказа CSS.
- OSSR (бит 11) — Состояние выключенного выхода при MOE = 1.
- OSSI (бит 10) — Состояние выключенного выхода при MOE = 0.
- LOCK (биты 9:8) — Защита настроек от записи; записывается один раз после сброса.
- DTG (биты 7:0) — Мёртвое время между комплементарными выходами.
TIMx_DCR — пакетная передача DMA
Смещение 0x48, 32 бит, после сброса 0x0000. В коде: TIM2->DCR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DBL | — | DBA | ||||||||||||
- DBL (биты 12:8) — Число передач в пакете DMA: DBL + 1.
- DBA (биты 4:0) — Первый регистр пакета DMA: смещение от CR1 в словах.
TIMx_DMAR — адрес пакетной передачи DMA
Смещение 0x4C, 32 бит, после сброса 0x0000. В коде: TIM2->DMAR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DMAB | |||||||||||||||
- DMAB (биты 15:0) — Окно пакетного обмена DMA с регистрами таймера.
Частые вопросы
Как получить ШИМ 1 кГц на TIM3 STM32F030 при 48 МГц?
PSC = 47 (счёт 1 МГц), ARR = 999. В CCMR1 для канала 1: OC1M = 110 и OC1PE = 1; в CCER — CC1E = 1; скважность — CCR1 = 0…1000. Затем EGR.UG = 1 и CR1.CEN = 1.
Почему не выходит ШИМ с TIM1 или TIM16?
У таймеров с комплементарными выходами нужен ещё бит MOE в регистре BDTR. Без него выходы остаются в состоянии простоя, даже если CCxE включён.
Источники
- STMicroelectronics. RM0091: Reference manual (Rev 10) — раздел 17.4–21.4: описание регистров, назначение полей и значения после сброса
- STMicroelectronics. cmsis-device-f0 v2.3.8: заголовки CMSIS stm32f031x6.h, stm32f038xx.h, stm32f042x6.h, stm32f048xx.h, stm32f051x8.h, stm32f058xx.h, stm32f071xb.h, stm32f072xb.h, stm32f078xx.h, stm32f091xc.h, stm32f098xx.h — структуры периферии, смещения, адреса экземпляров и макросы полей; лицензия Apache-2.0
Нашли ошибку в регистрах?
Другие регистры STM32F0
- Все регистры STM32F0Блоки периферии и заголовки CMSIS
- RCC — тактирование и сбросRCC_CR, RCC_CFGR, RCC_CIR, RCC_APB2RSTR, RCC_APB1RSTR, RCC_AHBENR
- GPIO — порты ввода-выводаGPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR, GPIOx_IDR, GPIOx_ODR
- SYSCFG — системная конфигурацияSYSCFG_CFGR1, SYSCFG_EXTICR1, SYSCFG_EXTICR2, SYSCFG_EXTICR3, SYSCFG_EXTICR4, SYSCFG_CFGR2
- EXTI — внешние прерыванияEXTI_IMR, EXTI_EMR, EXTI_RTSR, EXTI_FTSR, EXTI_SWIER, EXTI_PR
- USART — последовательные порты USARTUSART_CR1, USART_CR2, USART_CR3, USART_BRR, USART_GTPR, USART_RTOR
- SPI — интерфейсы SPI и I2SSPI_CR1, SPI_CR2, SPI_SR, SPI_DR, SPI_CRCPR, SPI_RXCRCR
- I2C — интерфейс I2CI2C_CR1, I2C_CR2, I2C_OAR1, I2C_OAR2, I2C_TIMINGR, I2C_TIMEOUTR
- DMA — прямой доступ к памятиDMA_ISR, DMA_IFCR, DMA_CSELR, DMA_CCR, DMA_CNDTR, DMA_CPAR
- ADC — аналого-цифровой преобразовательADC_ISR, ADC_IER, ADC_CR, ADC_CFGR1, ADC_CFGR2, ADC_SMPR
- IWDG — независимый сторожевой таймерIWDG_KR, IWDG_PR, IWDG_RLR, IWDG_SR, IWDG_WINR
- WWDG — оконный сторожевой таймерWWDG_CR, WWDG_CFR, WWDG_SR
- CRC — вычислитель CRCCRC_DR, CRC_IDR, CRC_CR, CRC_INIT, CRC_POL
- DBGMCU — блок отладкиDBGMCU_IDCODE, DBGMCU_CR, DBGMCU_APB1_FZ, DBGMCU_APB2_FZ
- PWR — управление питаниемPWR_CR, PWR_CSR
- FLASH — интерфейс флеш-памятиFLASH_ACR, FLASH_KEYR, FLASH_OPTKEYR, FLASH_SR, FLASH_CR, FLASH_AR
- RTC — часы реального времениRTC_TR, RTC_DR, RTC_CR, RTC_ISR, RTC_PRER, RTC_WUTR
- DAC — цифро-аналоговый преобразовательDAC_CR, DAC_SWTRIGR, DAC_DHR12R1, DAC_DHR12L1, DAC_DHR8R1, DAC_DHR12R2
- CAN — контроллер CANCAN_MCR, CAN_MSR, CAN_TSR, CAN_RF0R, CAN_RF1R, CAN_IER