stm32f030 互补PWM输出问题

2019-10-15 03:06发布

    最近在用stm32f030做无感foc移植工作,需要配置6路互补PWM输出,使用的是MX_Cube生成的库文件,但是配置后六路输出的PWM只有5路有输出,分别为UH,VH,VL,WH,WL,只有UL没有输出,百思不得其解,下面是采用HAL库的main函数。检测PWM是直接从PWM输出口检测的,不存在硬件上测试点不对的情况,请大神帮忙有什么可能,谢谢!

void main(void)
{
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
// MX_ADC_Init();
  MX_TIM1_Init();
  MX_TIM6_Init();

  /* USER CODE BEGIN 2 */
  TIM1->CCR1 = 600;
  TIM1->CCR2 = 1200;
  TIM1->CCR3 = 1800;

//  ADC1->CR |= 1 << 0;                        // ADC enable command

  __ASM("NOP");__ASM("NOP");__ASM("NOP");__ASM("NOP");__ASM("NOP");
  TIM1->CCER |= 0x0555;         // 六路互补输出使能 为什么只有五路?
  __ASM("NOP");__ASM("NOP");__ASM("NOP");__ASM("NOP");__ASM("NOP");
  TIM1->CR1 |= 1 << 0;              // TIM1 counter enable

  TIM6->CR1 |= 1 << 0;              // TIM6 counter enable
  TIM1->BDTR |= 0;   // 调试先不加死区

  /* TIM1 Main Output Enable */
  TIM1->BDTR |= 0x8000;
  while (1)
  {

  }

}


0条回答

一周热门 更多>