Добрый день! Использую STM32F4DISCOVERY и Keil настраиваю таймер вот так:
Код
// Timer initialization
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // APB1 div == 4, freq == 42 MGz
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_Prescaler = 42000 - 1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period = 1;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
//TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
NVIC_EnableIRQ(TIM2_IRQn);
После того как отработает NVIC_EnableIRQ(TIM2_IRQn) сразу попадаю в прерывание. В регистре SR выставляется флаг UIF, пытался его сбросить используя TIM_ClearITPendingBit(TIM2, TIM_IT_Update); не помогло. Сам же таймер я включаю позже. Как правильно делать?