TIMx General-purpose timers - Таймеры общего назначения (TIM2 - TIM5)

Offset: 0x00
TIMx control register 1
Первый регистр управления таймерами TIM2 - TIM5
Offset: 0x04
TIMx control register 2
Второй регистр управления таймерами TIM2 - TIM5
Offset: 0x08
TIMx slave mode control register
Регистр управления таймерами TIM2 - TIM5 в подчинённом (slave) режиме
Offset: 0x0C
TIMx DMA/Interrupt enable register
Регистр разрешения прерываний и прямого доступа к памяти
Offset: 0x10
TIMx status register
Регистр статуса
Offset: 0x14
TIMx event generation register
Регистр генерации событий таймера
Offset: 0x18
TIMx capture/compare mode register 1
Первый регистр режимов захвата/сравнения - режим захвата входных данных
Offset: 0x18
TIMx capture/compare mode register 1
Первый регистр режимов захвата/сравнения - режим сравнения выходных данных
Offset: 0x1C
TIMx capture/compare mode register 2
Второй регистр режимов захвата/сравнения - режим захвата входных данных
Offset: 0x1C
TIMx capture/compare mode register 2
Второй регистр режимов захвата/сравнения - режим сравнения выходных данных
Offset: 0x1C
TIMx capture/compare enable register
Регистр включения режимов захвата/сравнения
Offset: 0x24
TIMx counter
Счетчик
Offset: 0x28
TIMx prescaler
Предделитель
Offset: 0x2C
TIMx auto-reload register
Регистр автоматической предзагрузки (ARR)
Offset: 0x34
TIMx capture/compare register 1
Регистр захвата/сравнения первого канала
Offset: 0x38
TIMx capture/compare register 2
Регистр захвата/сравнения второго канала
Offset: 0x3С
TIMx capture/compare register 3
Регистр захвата/сравнения третьего канала
Offset: 0x40
TIMx capture/compare register 4
Регистр захвата/сравнения четвёртого канала
Offset: 0x48
TIMx DMA control register
Регистр управления прямым доступом к памяти
Offset: 0x4С
TIMx DMA address for full transfer
Регистр DMA для пакетного доступа



#define PERIPH_BASE           ((uint32_t)0x40000000)     /* Peripheral base address in the alias region */
#define APB1PERIPH_BASE       PERIPH_BASE

#define TIM2_BASE             (APB1PERIPH_BASE + 0x0000)
#define TIM3_BASE             (APB1PERIPH_BASE + 0x0400)
#define TIM4_BASE             (APB1PERIPH_BASE + 0x0800)
#define TIM5_BASE             (APB1PERIPH_BASE + 0x0C00)

#define TIM2                ((TIM_TypeDef *) TIM2_BASE)
#define TIM3                ((TIM_TypeDef *) TIM3_BASE)
#define TIM4                ((TIM_TypeDef *) TIM4_BASE)
#define TIM5                ((TIM_TypeDef *) TIM5_BASE)



typedef struct
{
  __IO uint16_t CR1;
  uint16_t  RESERVED0;
  __IO uint16_t CR2;
  uint16_t  RESERVED1;
  __IO uint16_t SMCR;
  uint16_t  RESERVED2;
  __IO uint16_t DIER;
  uint16_t  RESERVED3;
  __IO uint16_t SR;
  uint16_t  RESERVED4;
  __IO uint16_t EGR;
  uint16_t  RESERVED5;
  __IO uint16_t CCMR1;
  uint16_t  RESERVED6;
  __IO uint16_t CCMR2;
  uint16_t  RESERVED7;
  __IO uint16_t CCER;
  uint16_t  RESERVED8;
  __IO uint16_t CNT;
  uint16_t  RESERVED9;
  __IO uint16_t PSC;
  uint16_t  RESERVED10;
  __IO uint16_t ARR;
  uint16_t  RESERVED11;
  __IO uint16_t RCR;
  uint16_t  RESERVED12;
  __IO uint16_t CCR1;
  uint16_t  RESERVED13;
  __IO uint16_t CCR2;
  uint16_t  RESERVED14;
  __IO uint16_t CCR3;
  uint16_t  RESERVED15;
  __IO uint16_t CCR4;
  uint16_t  RESERVED16;
  __IO uint16_t BDTR;
  uint16_t  RESERVED17;
  __IO uint16_t DCR;
  uint16_t  RESERVED18;
  __IO uint16_t DMAR;
  uint16_t  RESERVED19;
} TIM_TypeDef;