본문 바로가기

공부/STM32F1

12.[stm32f103][hal] 타이머 (3) _ Timer OC(Output Compare) Interrupt

728x90
반응형

1. stm32cube 설정

 

 

 

 

 

2. 소스

main.c

int main(void)
{
  HAL_Init();

  SystemClock_Config();

  MX_GPIO_Init();
  MX_TIM8_Init();


  HAL_TIM_OC_Start_IT(&htim8,TIM_CHANNEL_1);

  while (1)
  {

  }

}
 
 

stm32f1xx_it.c

에 보면 맨 밑에 내려가면 아래와 같은 함수가 생성되어 있을겁니다.

그 안에 HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_7); 추가하면 됩니다.

void TIM8_CC_IRQHandler(void)
{
  /* USER CODE BEGIN TIM8_CC_IRQn 0 */
  HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_7);
  /* USER CODE END TIM8_CC_IRQn 0 */
  HAL_TIM_IRQHandler(&htim8);
  /* USER CODE BEGIN TIM8_CC_IRQn 1 */
 
  /* USER CODE END TIM8_CC_IRQn 1 */
}

 

이렇게 하면 OC 가 발생 할때 마다 인터럽트가 발생하여 

PC6 포트와 같이 PC7 포트도 같은 펄스가 발생할 것 입니다.

아래는 PC7 포트를 측정한 결과 입니다.

 

 

 

728x90
반응형