embeded/Cortex-M3 STM2025. 6. 2. 17:23

그나저나 stm32f4xx_hal_tim.c 에서 내가 만든 파일의 함수를 호출하게해서

pwm이 끝나면 카운트를 갂아 원하는 횟수만큼 소리내려고 했는데

interrupt 내에서 호출한 변수가 증가만 하고 리셋되지 않는 이상한 현상이 발생

해결책은 나중에 찾아봐야겠다.

/* stm32f4xx_hal_tim.c */


void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
{
  ...중략
  /* TIM Update event */
  if(__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
  {
    if(__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) !=RESET)
    {
      __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
      HAL_TIM_PeriodElapsedCallback(htim);
    }
  }
  ...중략
}

[링크 https://m.blog.naver.com/eziya76/220934409487]

 

__HAL_TIM_CLEAR_IT(&htim3, TIM_IT_UPDATE);
__HAL_TIM_ENABLE_IT(&htim3, TIM_IT_UPDATE);

void TIM3_IRQHandler(void)
{
    if (__HAL_TIM_GET_FLAG(&htim3, TIM_FLAG_UPDATE)) {
        __HAL_TIM_CLEAR_IT(&htim3, TIM_IT_UPDATE);
        // PWM 1회 출력 후 이벤트 처리
    }
}

 

쉬운 방법으로 One pulse mode도 있다

'embeded > Cortex-M3 STM' 카테고리의 다른 글

stm32 pwm 주파수 계산  (0) 2025.06.05
stm32 timer로 gpio 토글하기  (0) 2025.06.05
stm32 boot loader(shipping)  (0) 2025.05.13
stm32flash  (0) 2025.05.08
stm32 timer로 gpio 에 연결된 led on/off  (0) 2025.03.26
Posted by 구차니