Расширенный таймер TIM1

RCC_APB2ENR - регистр управления тактированием периферийных устройств, подключенных к шине APB2.
БитОбозначениеКомментарий
11TIM1ENРазрешение тактирования таймера/счетчика TIM1
Set and cleared by software.
0: TIM1 timer clock disabled
1: TIM1 timer clock enabled
0AFIOENРазрешение тактирования альтернативной функции
Set and cleared by software.
0: Alternate Function IO clock disabled
1: Alternate Function IO clock enabled


TIM1_PSC - предделитель таймера1
TIM1_CCMR1 - регистр 1 режима захвата/сравнения
Bits 14:12 OC2M[2..0]: Output Compare 2 mode
Bits 6:4 OC1M[2..0]: Output Compare 1 mode
TIM1_CCMR2 - регистр 1 режима захвата/сравнения
Bits 14:12 OC4M[2..0]: Output compare 4 mode
Bits 6:4 OC3M[2..0]: Output compare 3 mode
TIM1_CCER - регистр разрешения захвата/сравнения
TIM1_BDTR - break and dead-time register
TIM1_CCR1 - регистр 1 захвата/сравнения
TIM1_CCR2 - регистр 2 захвата/сравнения
TIM1_CCR3 - регистр 3 захвата/сравнения
TIM1_CCR4 - регистр 4 захвата/сравнения

TIM1_CR1 - регистр управления 1
Bit 0 CEN: Counter enable
0: Counter disabled
1: Counter enabled

Настройка ШИМ (http://electronix.ru/forum/index.php?showtopic=117680):
void Timer1_Init (void) {
    RCC->APB2ENR  |= (1<<0);                         //вкл. тактиров. таймера1 (наверное, все же (1<<11))
    TIM1->PSC = 20;                                  //делитель чтоб не лезть в даташит если он понадобится
    TIM1->CCMR1 |= (7<<12)|(7<<4);                   //+ канал 1 и 2 - ШИМ
    TIM1->CCMR2 |= (7<<12)|(7<<4);                   //+ канал 3 и 4 - ШИМ
    TIM1->CCER  |= (1<<12)|(1<<8)|(1<<4)|(1<<0);     //+
    TIM1->BDTR    |= (1<<15);
    TIM1->CCR1 = 0xFFFF;                             //значение ШИМ канал 1 (ТЕМ1.1) чем меньше тем длиннее 1
    TIM1->CCR2 = 0xFFFF;                             //значение ШИМ канал 2 (ТЕМ1.2)
    TIM1->CCR3 = 0xFFFF;                             //значение ШИМ канал 3 (ТЕМ2.1)
    TIM1->CCR4 = 0xFFFF;                             //значение ШИМ канал 4 (ТЕМ2.2)
    TIM1->CR1 |= (1<<0);                             //вкл. таймер 1
}