最近在用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)
{
}
}
一周热门 更多>