STM32F1

STM32F1, STMCubeMx, Timer Interrupt

CoyoteUgly 2018. 8. 6. 13:43

STM32F1, STMCubeMx, Timer Interrupt



0. 참고 사이트


1. Timer Enable

  • Clock Source : Internal Clock


2. RCC > HSE > Crystal/Ceramic Resonator


3. LED Pin


4. Clock Configuration > 72MHz


5. Configuration > TIM


6. Parameter Settings

  • Prescaler : 36000-1
  • Counter Period : 800
  • 400ms 마다 timer interrupt가 발생
/*
    400ms

    1) 72MHz System Clock, Prescaler 1MHz Timer Clock
            Prescaler = 72MHz / 36000 - 1 = 2KHz = 0.05ms
    2) 2KHz Timer Clock,
            Period = 800 => 400ms
*/



7. SW 구성

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
        if (htim->Instance == TIM1)
        {
             HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_7);
        }
}


HAL_TIM_Base_Start_IT(&htim1);




9. 결과

400ms 마다 LED를 점멸하도록 함