Да, лучше сюда, мало ли кто еще посмотрит. Лeoнид Ивaнoвич, мне как новичку интересно посмотреть, сам использую TIM2 для других целей(ногой дергаю), вот и решил посмотреть, может криво делаю:
void TIM2_IRQHandler (void)
{
if (TIM2->SR & TIM_SR_UIF)
{
if (flag_PC10!=0)
{
GPIOC->BSRR = GPIO_BSRR_BS10; // поднимаем
flag_PC10 = 0;
}
else
{
GPIOC->BSRR = GPIO_BSRR_BR10; // сбрасываем
flag_PC10 = 1;
}
iprintf("Timer TIM2");
TIM2->SR &= ~TIM_SR_UIF;
}
}
void initTim2Timer()
{
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; // разрешаем тактирование таймера
// spTime = 10 => 1c
TIM2->ARR = 720*spTime - 1; // до стольки считаем
TIM2->PSC = 10000 - 1; // частота обновления счетчика, от частоты RC, 72 000 000 Гц
TIM2->CR1 |= TIM_CR1_CEN | TIM_CR1_ARPE; // разрешаем работу таймера и сброс по достижении макс.
TIM2->DIER |= TIM_DIER_UIE; // разрешаем генерацию событий
__enable_irq();
NVIC_SetPriority(TIM2_IRQn, 5);
NVIC_EnableIRQ(TIM2_IRQn);
}