그나저나 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 |