아날로그 PWM을 사용한 STM 시뮬레이션

균형 차를 만드는 과정에서 PCB를 납땜 한 후 BIN2 포트에 타이머 채널 기능이없고 PWM을 출력 할 수 없다는 것을 알았지 만 이런 식으로 사용할 수는 없습니다.
51개의 단일 칩 마이크로컴퓨터를 사용할 때 PWM 파동을 생성하는 방법을 잊지 마십시오. 그래서 이 방법을 사용하여 PWM을 구현합니다.

  • 타이머와 타이머 인터럽트를 직접 사용하십시오.
  • HAL 라이브러리의 콜백 함수를 사용합니다.
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) //Âö³å½áÊø£¬Ò²¾ÍÊǸߵçƽ½áÊø£¬ÖÃΪµÍµçƽ
{
    
    
    if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_3)
    {
    
    

        GPIOA->BRR = GPIO_PIN_3;//±äΪµÍµçƽ
    } else if(htim->Channel == HAL_TIM_ACTIVE_CHANNEL_4)
    {
    
    
        GPIOA->BRR = GPIO_PIN_4;
    }
		
}

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) //µ±Õû¸öÖÜÆÚ½áÊø£¬ÖÃΪ¸ßµçƽ
{
    
    
  /* USER CODE BEGIN Callback 0 */
    if(TIM3->CCR3 != 0)
        GPIOA->BSRR = GPIO_PIN_3; //±äΪ¸ßµçƽ
    if(TIM3->CCR4 != 0)
        GPIOA->BSRR = GPIO_PIN_4;
  /* USER CODE END Callback 0 */
  if (htim->Instance == TIM1) {
    
    
    HAL_IncTick();
  }
}

Supongo que te gusta

Origin blog.csdn.net/amimax/article/details/128423747
Recomendado
Clasificación