전자/임베디드 시스템

STM32 HAL_TIM_IRQHandler 함수 분석

Begi 2022. 6. 30. 23:10
반응형

STM32에서 타이머 인터럽터가 걸렸을 실행되는 HAL_TIM_IRQHandler 함수는 다음과 같다. if 문으로 타이머 인터럽터의 종류를 판단한다.

 

 

채널 1에서 Capture Compare 인터럽터(CC1 인터럽터)가 발생했을 때는 다음이 실행된다. 타이머의 SR 레지스터에서 CC1 flag이 1 인지를 검사하고 1 이라면 clear 하고 callback 함수를 호출한다.

 

 

타이머의 SR 레지스터는 다음과 같다. 0비트의 UIF가 TIM_FLAG_UPDATE이고 1비트의 CC1IF이 TIM_FLAG_CC1이다.

 

 

매크로 함수 __HAL_TIM_CLEAR_IT는 다음과 같다. Flag을 clear하려면 해당 비트에 0을 쓰면 된다. 1을 쓰도 1이 되지 않고 무시된다.

 

 

반응형