본문 바로가기

공부/STM32F1

14.[stm32f103][hal] 타이머 (5) _ Timer PWM Interrupt

728x90
반응형

1.stm32Cube 설정

 

 

 

주파수 =  8000000/80/1000 = 100Hz   

듀티비 = 100(주파수)/100(설정값) * 10 = 10%

 

2. 소스

main.c

int main(void)
{
 
  HAL_Init();
 
 
  SystemClock_Config();
 
 
  MX_GPIO_Init();
  MX_TIM8_Init();
 
  /* USER CODE BEGIN 2 */
  HAL_TIM_PWM_Start_IT(&htim8, TIM_CHANNEL_1);
  /* USER CODE END 2 */
 
  while (1)
  {
  /* USER CODE END WHILE */
 
  /* USER CODE BEGIN 3 */
 
  }
  /* USER CODE END 3 */
 
}


stm32f1xx_it.c
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 */
}​
 

3. 결과

빨간색 펄스가 인터럽에 의한 PC7  포트 토글입니다.

노란색은 PC6포트로 발생된 타이머8 의 PWM 입니다.

728x90
반응형